示例:我有以下JSON文件“jfile.json”:
{"key":value_a1, "key2":value_b1},
{"key":value_a2, "key2":value_b2},
{...}
每行文件都是一个JSON对象。这种类型的文件可以轻松地读入PySpark中。
jsonRDD = jsonFile('jfile.json')
然后调用jsonRDD.collect()方法,结果如下:
[Row(key=value_a1, key2=value_b1),Row(key=value_a2, key2=value_b2)]
现在我想将这些类型的文件保存为纯JSON文件。
我在Spark用户列表中找到了这篇文章:
http://apache-spark-user-list.1001560.n3.nabble.com/Updating-exising-JSON-files-td12211.html
声称使用RDD.saveAsTextFile(jsonRDD)
做完这个之后,文本文件看起来像:
Row(key=value_a1, key2=value_b1)
Row(key=value_a2, key2=value_b2)
即jsonRDD只是被简单地写入文件中,我期望在读取Spark用户列表条目后有一种“自动转换”回JSON格式的方式。我的目标是拥有一个看起来像开头提到的'jfile.json'文件。
我是否错过了一种非常明显且易于实现的方法?
我阅读了http://spark.apache.org/docs/latest/programming-guide.html,搜索了谷歌、用户列表和堆栈溢出以获取答案,但几乎所有答案都涉及将JSON读取和解析为Spark。我甚至买了《学习Spark》这本书,但那里的例子(第71页)只导致与上面相同的输出文件。
有人可以帮帮我吗?我觉得我只是在这里缺少一个小链接。
谢谢!
res.toJSON().saveAsTextFile('/tmp/out/')
- Smerity