【问题标题】:How to query nested XML file in AWS Athena via Glue如何通过 Glue 在 AWS Athena 中查询嵌套的 XML 文件
【发布时间】:2019-03-21 16:00:44
【问题描述】:

我希望使用 AWS 胶水从 AWS Athena 查询嵌套的 XML 文件。

<Files>
<File>
<Charges>
<charge>
<FRNo>99988881111</FRNo>
<amount>25.0</amount>
<Date>2019-02-25</Date>
<chargeType>Recur</chargeType>
<phoneNo>4444000012</phoneNo>
</charge>

<charge>
<FRNo>99988881111</FRNo>
<amount>40.0</amount>
<Date>2019-02-25</Date>
<chargeType>Recur</chargeType>
<phoneNo>4444000012</phoneNo>
</charge>

</Charges>


<FRNo>99988881111</FRNo>
<address>New YORK</address>
<amount>111</amount>
<DN>100000</DN>
 <name>Rite</name>
<phoneNo>4444000012</phoneNo>
<tax>8.0</tax>
</File>
</Files>

像这样,我有大约 10k 条记录。我认为我们必须对 ETL 工作进行一些修改。让我知道任何其他信息。

【问题讨论】:

    标签: amazon-web-services pyspark etl amazon-athena aws-glue


    【解决方案1】:

    Athena 无法直接处理 XML 文件。因此,我们需要 Athena 支持的任何格式(CSV/JSON/等)。

    1) 在 Glue 中抓取 XML 文件(提供正确的 rowTag 值)
    2) 编写 Glue 作业以将 XML 转换为 CSV/JSON
    3) 抓取转换后的 CSV/JSON

    【讨论】:

      【解决方案2】:

      目前,Amazon Athena 不支持 XML 文件格式。您可以在此处找到支持的格式列表:Supported SerDes and Data Formats - Amazon Athena

      由于 AWS Glue 支持 XML 作为 ETL 输入格式 (https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html),您可以先将数据从 XML 转换为 JSON,然后使用 Athena 查询 JSON 数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-04-18
        • 2019-03-22
        • 2020-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-08
        相关资源
        最近更新 更多