在 U-Sql 中打印 XML 提取器中的所有元素
Print all element in XML extractor in U-Sql
我是 U-Sql 的新手,正在编写用于提取 xml 元素的代码。这是我的 XML 代码。
<Dispositions>
<Disposition>test 1</Disposition>
<Disposition> test 2</Disposition>
</Dispositions>
我试图显示所有 "Disposition" 值。但最终输出仅显示 "Test 2"。
我有如下代码。
DECLARE @testFile string ="Marlboro20180301000000_child.xml";
@xmlElementRowPath= EXTRACT Disposition string
FROM @testFile
USING new Microsoft.Analytics.Samples.Formats.Xml.XmlExtractor("Dispositions",
new SQL.MAP<string,string>{
{"Disposition","Disposition"}
}
);
@words =
SELECT Ar.word, COUNT(*) AS count
FROM @xmlElementRowPath
CROSS APPLY
EXPLODE(new SQL.ARRAY<String>( Disposition.Split(','))) AS Ar(word)
GROUP BY Ar.word;
//ORDER BY count DESC;
OUTPUT @words
TO "test.csv"
USING Outputters.Csv();
我一直期待输出为
Test 1
Test 2
但仅接收 Test 2
作为输出
我使用 XmlDomExtractor
让它工作。一些示例代码:
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
// Get the xml using sample extractor
@input = EXTRACT Disposition string
FROM "/input/yourXML.xml"
USING new Microsoft.Analytics.Samples.Formats.Xml.XmlDomExtractor(rowPath:"Disposition",
columnPaths:new SQL.MAP<string, string> { {".", "Disposition"} } );
// Do some processing here
@output = SELECT * FROM @input;
// Output
OUTPUT @output
TO "/output/output.csv"
USING Outputters.Csv();
我的结果:
我不确定您为什么需要 Split
方法 - xml Disposition
节点是否包含需要由某个分隔符分隔的文本?如果是这样,请post一些更真实的示例数据。
我是 U-Sql 的新手,正在编写用于提取 xml 元素的代码。这是我的 XML 代码。
<Dispositions>
<Disposition>test 1</Disposition>
<Disposition> test 2</Disposition>
</Dispositions>
我试图显示所有 "Disposition" 值。但最终输出仅显示 "Test 2"。 我有如下代码。
DECLARE @testFile string ="Marlboro20180301000000_child.xml";
@xmlElementRowPath= EXTRACT Disposition string
FROM @testFile
USING new Microsoft.Analytics.Samples.Formats.Xml.XmlExtractor("Dispositions",
new SQL.MAP<string,string>{
{"Disposition","Disposition"}
}
);
@words =
SELECT Ar.word, COUNT(*) AS count
FROM @xmlElementRowPath
CROSS APPLY
EXPLODE(new SQL.ARRAY<String>( Disposition.Split(','))) AS Ar(word)
GROUP BY Ar.word;
//ORDER BY count DESC;
OUTPUT @words
TO "test.csv"
USING Outputters.Csv();
我一直期待输出为
Test 1
Test 2
但仅接收 Test 2
作为输出
我使用 XmlDomExtractor
让它工作。一些示例代码:
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
// Get the xml using sample extractor
@input = EXTRACT Disposition string
FROM "/input/yourXML.xml"
USING new Microsoft.Analytics.Samples.Formats.Xml.XmlDomExtractor(rowPath:"Disposition",
columnPaths:new SQL.MAP<string, string> { {".", "Disposition"} } );
// Do some processing here
@output = SELECT * FROM @input;
// Output
OUTPUT @output
TO "/output/output.csv"
USING Outputters.Csv();
我的结果:
我不确定您为什么需要 Split
方法 - xml Disposition
节点是否包含需要由某个分隔符分隔的文本?如果是这样,请post一些更真实的示例数据。