是否有必要到处设置分区号?火花

时间:2016-12-06 13:31:16

标签: java apache-spark

我想知道如果转换有numPartitions参数,我应该设置分区号。 例如,当我在代码中创建第一个RDD时,我设置了分区号。如果我创建另一个RDD,默认分区号是否与第一个RDD相同?

1 个答案:

答案 0 :(得分:1)

默认情况下,spark会将您的数据集划分为多个分区。在初始阶段执行的任何操作也将得到处理。

但是,有时您可能需要将所有数据放在一个分区中,以便根据您的功能要求进行更好的分组。然后分区号将有所帮助。在此阶段,您还应验证执行程序的内存设置,因为现在所有数据都位于一个分区。

另一种情况是,当您执行过滤时。在内部执行过滤器时,将保留相同的分区,即使过滤掉了大多数记录。这导致空心分区。所以在这种情况下,你可以合并。这个方法需要numOfPartitions。

还有rePartition()方法,它将numOfPartitions作为输入。这涉及重新洗牌。你可以找到它们http://docs.aws.amazon.com/powershell/latest/reference/items/Auto_Scaling_cmdlets.html

所以你可以根据需要选择