我有很多json文件,但它们没有针对Spark正确格式化。我不想通过规范化每行上的每个字典来编写代码来专门将它们转换为正确的格式。
相反,我希望使用spark来解析他们的内容。我有以下
import json
import os
json_dir = '/data/original/TEMP'
df = sc.wholeTextFiles(os.path.join(json_dir,'*.json'))
j_docs = df.map(lambda x: json.loads(x[1])).cache()
这很好用,j_docs本质上是一个列表列表。例如,j_docs中的第一项是来自第一个文件的dicts列表。
我想将所有这些单独的列表组合成一个大型RDD。理想情况下,无需对数据运行收集。
谢谢
答案 0 :(得分:1)
使用如下的flatMap而不是map
j_docs = df.flatMap(lambda x: json.loads(x[1])).cache()