我的火花流式传输作业解压缩压缩的XML文件,并将其作为字符串附加到镶木地板文件。 我的批处理作业读取镶木地板文该文件只包含一列解压缩的xml字符串。
Parquet文件架构:
DF.printSchema()
根
| - decompressed:string(nullable = true)
镶木地板文件中的示例记录
DF.show(1,False)
|decompress
------------------------------------------------+
|<Sale><ItemID >10</ItemID>......</Sale>
有什么方法可以在其上应用数据块XML包来提取xml元素。除了编写UDF之外,我还有其他选择吗?我将UDF作为第二选择,考虑到UDF需要更多时间来处理。
答案 0 :(得分:1)
您只能对文件(而不是RDD / DF)应用数据库onResponse
包。这里唯一的选择是使用PaginationCallBack
将DF保存在某些临时路径下作为文本文件并读取新保存的文件。
但是这里有一个问题 - 为什么你在你的火花流工作中将XML保存为单列拼花文件?为什么不规划spark-xml
包可读的文本文件?