我是spark/pyspark/hdfs的新手,我尝试直接从hdfs加载一个.json文件,代码如下:
import json
file = sc.textFile('/path/to/HDFS/my.json')
data = file.map(lambda x: json.loads(x))
lis = data.collect()
... a lot of Python functions.
dictionary_output = {'key1': 'value1', 'key2': 'value2', ...}
加载文件后,我使用一些python函数来处理数据。所有这些函数之后的输出都是dictionary,如代码所示。我现在无法将它保存回hdfs
dictionary_output.saveAsTextFile('/path/')
没有´我不为字典工作。我还尝试了“并行化”字典,但是输出文件只包含键´s和no值。
所以我的问题是:什么是正确的命令来将字典输出格式化为rdd或其他可以用pyspark/python保存在hdfs上的文件格式。
1条答案
按热度按时间nc1teljy1#
我也遇到了类似的问题,在我的例子中,最好的方法是将序列化的字典作为json文件保存回hdfs。
您可以通过以下代码执行此操作:
注意,我发现需要显式地使用'read.json',以避免pyspark根据列数据类型推断字典模式时出现任何错误/警告。