在执行聚合或分组操作时,可以要求 Spark 使用给定的分区数。聚合分组操作中,大多数操作符都能接收第二个参数,这个参数用来指定分组结果或聚合结果的RDD 的分区数。...这些操作列在了下表:
5. 数据分区
在分布式程序中,通信的代价是很大的,因此控制数据分布以获得最少的网络传输可以极大地提升整体性能。...要解决这一问题也很简单:在程序开始时,对userData 表使用 partitionBy() 转化操作,将这张表转为哈希分区。...以 保 持 不 变,由于在构建 userData 时 调 用 了 partitionBy() ,Spark 就 知 道 了 该 RDD 是 根 据 键 的 哈 希 值 来 分区的,这样在调用 join(...(个人理解,有误请指正)
注意:
在 Python 中,你不能将 HashPartitioner 对象传给 partitionBy ,而需要把需要的分区数传递过去(例如 rdd.partitionBy