我正在使用XML
来自databricks
. 这是我的XML
示例数据。
<ds Name="abc">
<node begin="18" end="22" val="Organic" type="type1">
<hs id="0" begin="18" end="91" />
</node>
<node begin="22" end="23" val="Cereal">
<hs id="0" begin="18" end="91" />
</node>
<node begin="23" end="25" val="Kellogs" type="type2">
<hs id="0" begin="18" end="91" />
</node>
<node begin="22" end="23" val="Harry" type="type1">
<hs id="1" begin="108" end="520" />
</node>
<node begin="23" end="25" val="Potter" type="type1">
<hs id="1" begin="108" end="520" />
</node>
</ds>
我想将所有node.val
(按它们在XML
文件中出现的顺序)组合在一起hs id
。
例如,上述数据的 o/p 应为:
名称 hs id Val
abc 0 有机谷物
abc 1 哈利波特
这是我从 databricks 加载 XML 源的地方:
val df = sqlContext.read
.format("com.databricks.spark.xml")
.option("rowTag", "ds")
.option("attributePrefix", "")
.load(args(0))
df.registerTempTable("ds")
我不确定如何按 对数据集进行分组hs id
,并确保保留顺序。
val df_ds = sqlContext.sql("SELECT Name, node.type from ds")