基于对this question I asked earlier的建议,我能够将RDD转换为所需格式的JSON。为了将其保存到HDFS,我想将其转换回RDD,然后使用coalesce
将其保存到10个分区文件中。
到目前为止我正在做什么:
my_rdd = sc.parallelize([my_json])
转换为RDD my_rddcoalesce(10).saveAsTextFile
批发并保存在我的测试中,此操作成功执行,但10个分区文件中只有一个具有数据。经过进一步检查,似乎整个json文件都作为单个记录加载到了RDD中,而不是每个json元素一个记录,导致coalesce
函数无法正确拆分数据。
我尝试发布hadoop fs -text <saved_file_partition> |head -n 1
,整个JSON都吐出来了,而不是只有第一条记录。
如何将JSON对象正确转换为RDD?
答案 0 :(得分:0)
自定义<form method="post" id="id-form" class="hidden">
<input type="hidden" id="ids" name="ids" value="" />
</form>
以来
RDD
它将只有一个记录,并且单个记录永远不会在分区之间分割。因此,使用多少个分区无关紧要-数据集中只能有一个非空分区。