使用PySp读取XML

2024-03-28 13:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用PySpark读取XML,但是我有一些问题。在

我在运行这个代码:

df_cli = sqlContext.read.format('com.databricks.spark.xml').options(rowTag='Cli').load('MyFile.txt', schema = schema_xml)

以及我的文件.txt公司名称:

^{pr2}$

架构:

^{3}$

当我运行这段代码时,我的输出是:

Row(@Autorzc=u'S', @Cd=u'8338', @Tp=u'1', Op=Row(@Contrt=u'2', @Mod=u'1304', @NatuOp=u'01', Venc=Row(@v110=u'   123', @v120=u'   123)))
Row(@Autorzc=u'N', @Cd=u'8568', @Tp=u'2', Op=Row(@Contrt=u'4', @Mod=u'0202', @NatuOp=u'01', Venc=Row(@v110=u'   123', @v120=u'   123)))

结果是在每个'Cli'中只得到最后一个'Op',但我希望在列表中的每个'Cli'中获得所有'Op',如下所示:

Row(@Autorzc=u'S', @Cd=u'8338', @Tp=u'1', Op=[Row(@Contrt=u'1', @Mod=u'1304', @NatuOp=u'01', Venc=Row(@v110=u'   123', @v120=u'   123)), Row(@Contrt=u'2', @Mod=u'1304', @NatuOp=u'01', Venc=Row(@v110=u'   123', @v120=u'   123))])
Row(@Autorzc=u'N', @Cd=u'8568', @Tp=u'2', Op=[Row(@Contrt=u'3', @Mod=u'1304', @NatuOp=u'01', Venc=Row(@v110=u'   123', @v120=u'   123)), Row(@Contrt=u'4', @Mod=u'1304', @NatuOp=u'01', Venc=Row(@v110=u'   123', @v120=u'   123))])

Obs:在我的原始文件中,我可以有1,2,3…N'Op',每个'Op'只有1个'Venc'。在

我正在使用this documentation。在


Tags: 代码txtmodclicdxmlrowop