繁体   English   中英

Apache Spark每条记录RDD或DF读取一个复杂的JSON文件

[英]Apache Spark Read One Complex JSON File Per Record RDD or DF

我有一个充满以下JSON文件格式的HDFS目录:

https://www.hl7.org/fhir/bundle-transaction.json.html

我希望做的是找到一种将每个文件拼合成一个df记录或rdd元组的方法。 我已经尝试过使用read.json(),wholeTextFiles()等可以想到的所有方法。

如果任何人有任何最佳做法建议或指导,我们将不胜感激。

通过wholeTextFiles加载如下内容:

sc.wholeTextFiles(...) //RDD[(FileName, JSON)
  .map(...processJSON...) //RDD[JsonObject]

然后,您可以简单地调用.toDF方法,以便从您的JsonObject推断。

至于processJSON方法,您可以使用Play json解析器之类的东西

当必须处理以不同元素可以位于不同行上的方式构造的数据时,将使用mapPartitions。 我已经使用mapPartitions处理JSON和XML。

mapPartitions一次处理整个数据块,而不是单个元素。 虽然您应该可以将DataFrameReader API与JSON结合使用,但mapPartitions绝对可以按照您的意愿进行操作。 我没有确切的代码来拼合JSON文件,但是我敢肯定您可以弄清楚。 只要记住输出必须是可迭代的类型即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM