我尝试将XML读取到PySpark的数据帧中。根据{{3}}的文档,我了解了如何加载xml文件,但返回的数据框为空。下面显示了如何读取文件和尝试解析的文件的示例。
from pyspark import SparkContext, SparkConf
from pyspark.sql import SQLContext
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-xml_2.10:0.4.1 pyspark-shell'
conf = SparkConf().setAppName('Stackoverflow')
sc = SparkContext(conf=conf)
sqlc = SQLContext(sc)
sqlc.read \
.format('com.databricks.spark.xml') \
.option('rootTag', 'tags') \
.option('rowTag', 'row') \
.load('example.xml')
example.xml:
<?xml version="1.0" encoding="utf-8"?>
<tags>
<row Id="1" TagName="inclination" Count="18" ExcerptPostId="553" WikiPostId="552" />
<row Id="3" TagName="exoplanet" Count="219" ExcerptPostId="11" WikiPostId="10" />
</tags>
答案 0 :(得分:0)
在来自spark-xml的books.xml中,行标记包含子标记,这些子标记将被解析为行字段。在我的示例中,没有子标记,只有属性。 这是没有引发错误并且结果为空数据帧的主要原因。 我认为应该在下一版本的spark-xml中修复它。
我使用了spark-2.1.0和spark-xml-0.4.0。