相关疑难解决方法(0)

如何为同等大小的分区的Spark RDD定义自定义分区程序,其中每个分区具有相同数量的元素?

我是Spark的新手.我有一个大的元素数据集[RDD],我想把它分成两个完全相同大小的分区,维护元素的顺序.我试着用RangePartitioner

var data = partitionedFile.partitionBy(new RangePartitioner(2, partitionedFile))
Run Code Online (Sandbox Code Playgroud)

这不能给出令人满意的结果,因为它大致分割但不完全相同的大小维持元素的顺序.例如,如果有64个元素,我们使用 Rangepartitioner,然后它分为31个元素和33个元素.

我需要一个分区器,以便我在一半中获得前32个元素,而另一半包含第二组32个元素.你能否通过建议如何使用自定义分区器来帮助我,这样我可以获得相同大小的两半,保持元素的顺序?

hadoop scala apache-spark

27
推荐指数
2
解决办法
4万
查看次数

以独占方式按键火花RDD分区

我想按键对RDD进行分区,并让每个分区仅包含单个键的值。例如,如果我有100个不同的键值和I repartition(102),则RDD应该有2个空分区和100个分区,每个分区包含一个键值。

我尝试过,groupByKey(k).repartition(102)但这不能保证每个分区中键的排他性,因为我看到有些分区包含一个键的更多值和两个以上的空值。

标准API中有没有办法做到这一点?

apache-spark rdd pyspark

3
推荐指数
1
解决办法
2574
查看次数

标签 统计

apache-spark ×2

hadoop ×1

pyspark ×1

rdd ×1

scala ×1