我正在尝试使用AWS Glue分类器来发现一组XML文件的模式。我将文件存储在一个s3桶中,如下所示:
s3://bucket/name_of_dataset/dataset.xml
每个数据集只有一个xml文件,因此没有分区。我通过简单地指定rowtag,经常使用spark-xml将它们拉入spark。但是,当我尝试使用XML classifier在AWS胶水中做类似的事情时,数据集最终会在胶水目录中显示为"未知"分类。显示一个数据集(每个xml数据集具有不同的模式),但模式似乎"发现"嵌套的rowtag而不是我指定的rowtag。
更具体的是,如果我将此文件存储在s3://mybucket/experiment/experiment.xml
,我应该指定什么作为rowtag(它似乎是唯一的参数)?有没有更好的地方寻求支持?
<?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>
...
提前致谢。
答案 0 :(得分:1)
我们的XML源与我们使用AWS技术支持有类似的问题。看起来XML Crawler存在一个错误,如果有一个空值的XML值(在您给出的示例中,xmlns的值为&#34;&#34;),Crawler似乎跳过您定义的分类,默认为行标记,最有可能来自XML中的嵌套行。
他们正在努力修复相同的问题,很可能会在本周或下周发布。
希望这有帮助。