gpt4 book ai didi

apache-spark - Spark : FlatMapValues query

转载 作者:行者123 更新时间:2023-12-04 02:34:30 24 4
gpt4 key购买 nike

我正在阅读 Learning Spark 书籍,但无法理解以下对 rdd 转换。

rdd.flatMapValues(x => (x to 5))

它应用于 rdd {(1,2),(3,4),(3,6)}转换的输出是 {(1,2),(1,3),(1,4),(1,5),(3,4),(3,5)}
有人可以解释一下。

最佳答案

flatMapValues方法是flatMap的组合和 mapValues .

让我们从给定的 rdd 开始。

val sampleRDD = sc.parallelize(Array((1,2),(3,4),(3,6)))
mapValues在保留键的同时映射值。

例如, sampleRDD.mapValues(x => x to 5)返回
Array((1,Range(2, 3, 4, 5)), (3,Range(4, 5)), (3,Range()))

请注意,对于键值对 (3, 6) ,它产生 (3,Range())6 to 5产生一个空的值集合。
flatMap “分解”集合为集合的元素。您可以像 here这样的在线搜索更准确的flatMap描述。和 here .

例如,

给定 val rdd2 = sampleRDD.mapValues(x => x to 5) ,
如果我们这样做 rdd2.flatMap(x => x) , 你会得到
Array((1,2),(1,3),(1,4),(1,5),(3,4),(3,5)).

也就是说,对于每个键中集合中的每个元素,我们创建一个 (key, element)一对。

另请注意 (3, Range())由于序列为空,因此不会产生任何额外的关键元素对。

现在结合 flatMapmapValues , 你得到 flatMapValues .

关于apache-spark - Spark : FlatMapValues query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37302264/

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