我正在使用 spark sql 对我的数据集运行查询。查询的结果非常小,但仍然是分区的。
我想合并生成的 DataFrame 并按列对行进行排序。我试过了
DataFrame result = sparkSQLContext.sql("my sql").coalesce(1).orderBy("col1")
result.toJSON().saveAsTextFile("output")
我也试过
DataFrame result = sparkSQLContext.sql("my sql").repartition(1).orderBy("col1")
result.toJSON().saveAsTextFile("output")
输出文件按块排序(即分区是有序的,但数据帧没有作为一个整体排序)。例如,而不是
1, value
2, value
4, value
4, value
5, value
5, value
...
我明白了
2, value
4, value
5, value
-----------> partition boundary
1, value
4, value
5, value
- 获得查询结果绝对排序的正确方法是什么?
- 为什么不将数据框合并到单个分区中?