如何使用.NET读取和解析azure数据湖商店中存在的xml文件?

时间:2017-11-13 10:15:20

标签: azure azure-data-lake

我在azure data lake store中有几个xml文件。我想从azure数据湖中获取这些文件并解析它。 我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以使用Azure Data Lake Store .NET SDK。以下教程将指导您对存储在Data Lake Store上的文件执行各种文件操作。

https://docs.microsoft.com/en-us/azure/data-lake-store/data-lake-store-data-operations-net-sdk

答案 1 :(得分:0)

我使用自定义提取器执行了此类操作。它有两个部分:1。使用System.Xml.Serialization将XML元素映射到属性的类,以及2.,创建该类类型的XmlSerializer对象的提取器方法,并调用该类的Deserialize方法对象over input.Basestream(数据)。最后,使用您的自定义提取器使用U-SQL进行查询 - 这需要在使用查询的USING语句调用库之前编译,上载,注册,最后引用库。

第1部分:

[XmlRoot("SomeRoot")]
public class MyDataClass
{
    [XmlElement("ELEMENT_0")]
    public Guid Column0 { get; set; }

    [XmlElement("ELEMENT_1")]
    public long Column1 { get; set; }

    [XmlElement("ELEMENT_2")]
    public string Column2 { get; set; }     
}`enter code here`

第2部分:

[SqlUserDefinedExtractor(AtomicFileProcessing = true)]
public class Xml : IExtractor
{
    public override IEnumerable<IRow> Extract(IUnstructuredReader input, IUpdatableRow output)
    {
        XmlSerializer ser = new XmlSerializer(typeof(MyDataClass));

        MyDataClass data = (MyDataClass)ser.Deserialize(input.BaseStream);

        //blah blah

        output.Set<Guid>(0, data.Column0);
        output.Set<long>(1, data.Column1);
        output.Set<string>(2, data.Column2);
相关问题