gpt4 book ai didi

apache-spark - 从 PySpark 中的列加载 XML 字符串

转载 作者:行者123 更新时间:2023-12-04 17:55:54 24 4
gpt4 key购买 nike

我有一个 JSON 文件,其中一列是 XML 字符串。

我尝试在第一步中提取该字段并写入文件,然后在下一步中读取文件。但是每一行都有一个 XML header 标记。因此生成的文件不是有效的 XML 文件。

如何使用 PySpark XML 解析器(“com.databricks.spark.xml”)读取此字符串并解析出值?

以下不起作用:

tr = spark.read.json( "my-file-path")
trans_xml = sqlContext.read.format('com.databricks.spark.xml').options(rowTag='book').load(tr.select("trans_xml"))

谢谢,拉姆。

最佳答案

尝试 Hive XPath UDF ( LanguageManual XPathUDF ):

>>> from pyspark.sql.functions import expr
>>> df.select(expr("xpath({0}, '{1}')".format(column_name, xpath_expression)))

或 Python UDF:

>>> from pyspark.sql.types import *
>>> from pyspark.sql.functions import udf
>>> import xml.etree.ElementTree as ET
>>> schema = ... # Define schema
>>> def parse(s):
... root = ET.fromstring(s)
result = ... # Select values
... return result
>>> df.select(udf(parse, schema)(xml_column))

关于apache-spark - 从 PySpark 中的列加载 XML 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40445816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com