【问题标题】:How can I use the AWS Glue XML classifier?如何使用 AWS Glue XML 分类器?
【发布时间】:2018-07-29 00:13:03
【问题描述】:

我正在尝试使用 AWS Glue 分类器来发现一组 XML 文件的架构。我将文件存储在 s3 存储桶中,如下所示:

s3://bucket/name_of_dataset/dataset.xml

每个数据集只有一个 xml 文件,因此没有分区。我通常通过简单地指定行标签来使用 spark-xml 将它们拉入 spark 中。但是,当我尝试使用 XML classifier 在 AWS 胶水中做类似的事情时,数据集最终在胶水目录中作为“未知”分类。出现了一个数据集(每个 xml 数据集都有不同的架构),但架构似乎“发现”了一个嵌套的行标签,而不是我指定的行标签。

更具体地说,如果我将此文件存储在s3://mybucket/experiment/experiment.xml,我应该指定什么作为行标签(这似乎是唯一的参数)?有更好的寻求支持的地方吗?

<?xml version="1.0" encoding="UTF-8"?>
<EXPERIMENT_SET>
  <EXPERIMENT xmlns="" alias="GSM1627835" accession="SRX913316" center_name="GEO">
    <IDENTIFIERS>
      <PRIMARY_ID>SRX913316</PRIMARY_ID>
      <SUBMITTER_ID namespace="GEO">GSM1627835</SUBMITTER_ID>
    </IDENTIFIERS>
    <TITLE>GSM1627835: Human_normal_blsatoyst_MethylC-seq_1; Homo sapiens; Bisulfite-Seq</TITLE>
    <STUDY_REF accession="SRP064113">
      <IDENTIFIERS>
        <PRIMARY_ID>SRP064113</PRIMARY_ID>
        <EXTERNAL_ID namespace="BioProject">PRJNA296788</EXTERNAL_ID>
      </IDENTIFIERS>
    </STUDY_REF>
    <DESIGN>
      <DESIGN_DESCRIPTION/>
      <SAMPLE_DESCRIPTOR accession="SRS868521">
        <IDENTIFIERS>
...

提前致谢。

【问题讨论】:

    标签: xml amazon-web-services aws-glue


    【解决方案1】:

    我们在与 AWS 技术支持部门合作时遇到了类似的 XML 源问题。看起来 XML Crawler 存在一个错误,如果 XML 值为空(在您给出的示例中,xmlns 的值为“”),则 Crawler 似乎跳过了您定义的分类器并且默认为最有可能来自 XML 中嵌套行的行标记。

    他们正在努力解决这个问题,它可能会在本周或下周发布。

    希望这会有所帮助。

    【讨论】:

    • 很高兴知道有解释。如果您在我之前听到并且感觉很慷慨,您能否告诉我们这是否/何时解决?
    • 我在抓取 XML 文件时也遇到了麻烦,我必须解决一些细微差别,比如 XML 标记为空,我的所有值都在 XML 属性中...我必须添加明确的结束标记作为以及行元素内的“填充”元素。但是随后创建的外部表是无用的,即使它选择了作为列的模式,因为它没有为 inputFormat、outputFormat 或 SerDeInfo 序列化库设置任何内容......不确定这是否会为您节省一些时间但最终它对我来说抓取我的 XML 文件毫无意义......也许我错过了一些东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多