gpt4 book ai didi

java - 如何为 Apache Spark Java 应用程序中的每个 Apache Spark 执行器分配唯一的整数键?

转载 作者:行者123 更新时间:2023-12-02 11:44:29 24 4
gpt4 key购买 nike

我需要为 Spark 应用程序中的每个 Spark 执行器分配一个唯一的整数 id。我需要从执行器上运行的任务中检索执行器 ID。执行器 ID 将与其他数据元素(时间戳、MAC 地址等)一起用于生成唯一的 64 位 key 。如何为 Apache Spark Java 应用程序中的每个 Apache Spark 执行器分配唯一的整数键?

最佳答案

分区的 ID 可能很有用,因为单个分区的所有元素将始终位于一个执行器上。

mapPartitionsWithIndex可以帮助:

val spark = SparkSession.builder.master("local[*]").appName("partitionIndex").getOrCreate()
import spark.implicits._

val ds = spark.createDataset(Seq.range(1, 21)).repartition(4)
ds.rdd
.mapPartitionsWithIndex((partitionIndex, it) => {
println("processing partition " + partitionIndex)
it.toList.map(i => new String("partition " + partitionIndex + " contains number " + i)).iterator
})
.foreach(println)

打印:

processing partition 1
processing partition 0
processing partition 2
processing partition 3
partition 1 contains number 3
partition 2 contains number 4
partition 2 contains number 9
partition 2 contains number 14
partition 2 contains number 19
partition 0 contains number 2
...
partition 3 contains number 1
partition 3 contains number 5
...

如果您能够为一个分区内的所有行分配一个唯一的 id,那么这个唯一 id 和分区索引的组合在整个系统中将是唯一的。

关于java - 如何为 Apache Spark Java 应用程序中的每个 Apache Spark 执行器分配唯一的整数键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48305379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com