サンプルの XMLExtractor ( https://github.com/Azure/usql/tree/master/Examples/DataFormatsから複製) を使用して、xml 要素からプロパティを抽出しています。
ルート要素にプロパティが定義されている場合、エクストラクタは機能しません。
たとえば、次の XML ファイルから「rec」要素の「sTime」プロパティを取得する必要があります。
<lics xmlns="***" lVer="*" pID="*" aKey="*" cTime="*" gDel="*" country="*" fStr="*">
<rec Ver="*" hID="*.*.*" cSID="Y5/*=" uID="*\Rad.*" uSID="*/*=" cAttrs="*" sTime="*" eTime="*" projID="*" docID="*" imsID="*">
</rec>
</lics>
次の U-SQL スクリプトを使用します。
@e = EXTRACT a string, b string
FROM @"D:\file.xml"
USING new Microsoft.Analytics.Samples.Formats.Xml.XmlDomExtractor(rowPath:"rec",
columnPaths:new SQL.MAP<string, string> { {"@sTime", "a"} });
OUTPUT @e TO "D:/output.csv" USING Outputters.Csv(quoting:false);
これにより、空のファイルが書き込まれます。しかし、「lics」タグのプロパティを削除すると機能します。
<lics>
<rec Ver="*" hID="*.*.*" cSID="Y5/*=" uID="*\Rad.*" uSID="*/*=" cAttrs="*" sTime="*" eTime="*" projID="*" docID="*" imsID="*">
</rec>
</lics>
これは抽出器の問題ですか?それとも、エクストラクタのパラメータのいずれかでこれを定義する必要がありますか?