我有一个HDFS目录,其中包含以下JSON文件格式:
https://www.hl7.org/fhir/bundle-transaction.json.html
我希望做的是找到一种方法来将每个单独的文件展平为一个df记录或rdd元组。我已经尝试过使用read.json(),wholeTextFiles()等所能想到的一切。
如果有人有任何最佳实践建议或指示,我们将非常感激。
答案 0 :(得分:1)
通过wholeTextFiles
加载如下内容:
sc.wholeTextFiles(...) //RDD[(FileName, JSON)
.map(...processJSON...) //RDD[JsonObject]
然后,您只需调用.toDF
方法,即可从JsonObject
推断出来。
就processJSON
方法而言,您可以使用类似Play
json parser
答案 1 :(得分:-1)
mapPartitions。我使用mapPartitions使用JSON和XML。
mapPartitions一次处理整个数据块,而不是单个元素。虽然您应该能够使用带有JSON的DataFrameReader API,但mapPartitions绝对可以按照您的意愿执行。我没有确切的代码来压缩JSON文件,但我相信你可以搞清楚。请记住输出必须是可迭代类型。