Вы можете легко сделать это в Databricks, например,
%sql
CREATE TABLE User
USING com.databricks.spark.xml
OPTIONS (path "/FileStore/tables/input42.xml", rowTag "User")
Затем прочитайте таблицу:
%sql
SELECT *
FROM User;
Если вы должны сделать это с U-SQL, то использование XmlDomExtractor
из сборки Форматы сработало для меня:
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
DECLARE @inputFile string = "/input/input40.xml";
@input =
EXTRACT
id string,
firstName string,
lastName string
FROM @inputFile
USING new Microsoft.Analytics.Samples.Formats.Xml.XmlDomExtractor(rowPath : "/Users/User",
columnPaths : new SQL.MAP<string, string>{
{ "@ID", "id" },
{ "FirstName", "firstName" },
{ "LastName", "lastName" }
}
);
@output =
SELECT *
FROM @input;
OUTPUT @output
TO "/output/output.csv"
USING Outputters.Csv();
Мои результаты: