读取xml并从数据中派生列名

gwo2fgha  于 2021-05-16  发布在  Spark
关注(0)|答案(0)|浏览(227)

我正在用python中的xml spark读取以下格式的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <row>
    <Field name="name1">120</Field>
    <Field name="name2">2020-10-12</Field>
    ...
    <Field name="nameN">12342</Field>
  </row>
...

将数据加载到Dataframe:

df = spark.read \
    .format('xml') \
    .options(rowTag="row", rootTags="root") \
    .load(source_data)

上面的命令将创建只有一列名为“field”的df。现在我从该df创建多个列:

df = df.select(f.col("Field")[0]._VALUE,
          f.col("Field")[1]._VALUE,
          ...
          f.col("Field")[N]._VALUE)

然后我定义了列的名称: df = df.toDF(*columns) 问题是,我有多个不同列数(n)和不同名称的xml文件。我需要直接从 <Field name="nameX"> .
你知道怎么做到吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题