为什么sortByKey()中的分区数默认不等于1?

时间:2017-10-02 15:36:20

标签: scala apache-spark

执行时:

list.sortByKey.take(10).foreach(println)

结果不正确。但是,当我将其修改为:

list.sortByKey(false,1).take(10).foreach(println)

我的结果是正确的

2 个答案:

答案 0 :(得分:1)

1)

  xxx.sortByKey().foreach(println)

Foreach在分区中并行运行,因为您不会订购。订单可能是混合的。

2)

以下代码仅适用于1个分区,并在群集上启动  超过1名工人

 xxx.sortByKey(numPartitions=1).foreach(println)

3)

  xxx.sortByKey().collect

Collect提供以排序顺序连接的分区数组。

答案 1 :(得分:0)

您可以通过命名参数显式赋值

来实现

喜欢

 list.rdd.sortByKey(numPartitions = 1).take(10).foreach(println)

这应该有效