无法分析spark中具有复杂嵌套结构的XML
我正在尝试解析复杂的嵌套XML文件。下面是示例dat无法分析spark中具有复杂嵌套结构的XML,xml,scala,apache-spark,Xml,Scala,Apache Spark,我正在尝试解析复杂的嵌套XML文件。下面是示例dat <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ADIL> <Meta> <AMS Asset_Name="asd" Provider="Level" Product="MOTD" Version_Majo
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ADIL>
<Meta>
<AMS Asset_Name="asd" Provider="Level" Product="MOTD" Version_Major="1" Version_Minor="0" Description="ZXC" Creation_Date="2009-12-03" Provider_ID="qwer.com" Asset_ID="A12we" Asset_Class="package"/>
<App_Data App="MOD" Name="ASDF" Value="CableLa1.1"/>
<App_Data App="MOD" Name="Platform" Value="RTY"/>
<App_Data App="MOD" Name="Platform" Value="FGH"/>
</Meta>
<Asset>
<Meta>
<AMS Asset_Name="bnm" Provider="Level Film" Product="MOTD" Version_Major="1" Version_Minor="0" Description="bnj7" Creation_Date="2009-12-03" Provider_ID="levelfilm.com" Asset_ID="DDDB0610072533182333" Asset_Class="title"/>
App_Data App="rt" Name="Window_Start" Value="2020-12-29T00:00:00"/>
<App_Data App="MOD" Name="Window_End" Value="2021-12-29T23:59:59"/>
<App_Data App="MOD" Name="Suggested_Price" Value="16.99"/>
</Meta>
<Asset>
<Meta>
<AMS Asset_Name="atysd" Provider="Level1" Product="MOTD2" Version_Major="1" Version_Minor="0" Description="ZXCY" Creation_Date="2009-12-03" Provider_ID="qweDFtrr.com" Asset_ID="A12FGwe" Asset_Class="review"/>
App_Data App=“rt”Name=“Window_Start”Value=“2020-12-29T00:00:00”/>
在上面的数据中,我能够使用spark sql获取资产名称、提供者和所有文本元素。
但当我深入研究XML时,问题就出现了。例如,在属性Name=“Window\u Start”中,列名应为Window\u Start,其值应为value=“2020-12-29T00:00:00”。因此,基本上属性的值应该被解析为列名,同样,我必须为XML文件中的所有这类值进行解析。你能告诉我如何做到这一点吗
而且,在源代码中,行标记meta重复两次。我需要将行标记元的所有元素放入各自的列中。例如,在第一个元标记中有一个元素Asset\u Class=package,而在第二个元行标记中,有一个相同的元素具有不同的值Asset\u Class=“title”。我需要标题并将值打包到一列资产类别中。有人能帮忙吗。
多谢各位