Moh*_*itt 6 hash partitioning shuffle apache-spark
我有两个RDD[K,V],在哪里K=Long和V=Object.让我们叫rdd1和rdd2.我有一个共同的自定义分区程序.我试图找到一种方法,union或join通过避免或最小化数据移动.
val kafkaRdd1 = /* from kafka sources */
val kafkaRdd2 = /* from kafka sources */
val rdd1 = kafkaRdd1.partitionBy(new MyCustomPartitioner(24))
val rdd2 = kafkaRdd2.partitionBy(new MyCustomPartitioner(24))
val rdd3 = rdd1.union(rdd2) // Without shuffle
val rdd3 = rdd1.leftOuterjoin(rdd2) // Without shuffle
Run Code Online (Sandbox Code Playgroud)
假设(或强制执行)nth-Partition两者rdd1和rdd2同一slave节点是否安全?
无法在Spark中强制执行*托管,但您使用的方法将最大限度地减少数据移动.当PartitionerAwareUnionRDD创建输入RDDs进行分析,以选择基于对每个位置的记录数最佳输出位置.详见getPreferredLocations方法.
如果两个RDD具有相同的分区并且作为相同操作的一部分进行洗牌,则它们将被共同定位.
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |