如何读取xml格式(Pyspark)的流数据

如何读取xml格式(Pyspark)的流数据,pyspark,spark-structured-streaming,spark-streaming-kafka,Pyspark,Spark Structured Streaming,Spark Streaming Kafka,我有大量XML文件以XML格式实时存储在文件夹中。我必须以附加模式读取XML、解析和写入parquet。这将使用pyspark实时实现。我该怎么做 XML文件示例: <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="Repository.xsl"?> <Main id='EC84-

我有大量XML文件以XML格式实时存储在文件夹中。我必须以附加模式读取XML、解析和写入parquet。这将使用pyspark实时实现。我该怎么做

XML文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Repository.xsl"?>

<Main id='EC84-A89C-HJCF6DF'>
<Collection>
  <fact><Name>Test</Name><tent filename="EDF.csv"><![CDATA[A,B,C,D,E
  -200,-99.65,-105.00,-95.00,B
  -180,-79.09,-85.00,-75.00,B ]]></tent></fact></Collection>

请帮助我使用pyspark代码。(对scala不太熟悉)你能分享你到目前为止所做的尝试吗?还有,你在哪一个阶段被卡住了?你得到了什么错误?@mike请检查上面pyspark中的代码。这将为您提供如图所示的o/p。我想用pyspark流媒体实时完成它。
df2 = df.select(f.col('_id').alias('id'), 
f.explode("Collection").alias("Collection")).selectExpr("id", 
"Collection.*").select("id", 
f.explode('fact').alias('value')).selectExpr("id", "value.*").select(
    "id", f.split('tent', '\\n').alias('tent')).select("id", 
f.explode('tent')).select("id", 'col', f.size(f.split('col', 
',')).alias('size')).select("id", 'size', 'col').where("size = 
5").filter("col not like '%A%'").select("id", 'col').select("id", 
f.split('col', ',').alias('word'))

df3 = df2.select('id', *[df2['word'][i] for i in range(5)])
cols = ['id','A','B','C','D','E']
df3 = df3.toDF(*cols)