gpt4 book ai didi

scala - scala rdd 中键的元组值

转载 作者:行者123 更新时间:2023-12-04 17:54:32 24 4
gpt4 key购买 nike

我在 Scala 中有带有键值对的 rdd。我想以这样的方式形成 rdd (key , tuple(values))

我试过使用 map 但没有用。如果它是 pyspark 那么我会使用map(lambda x : x[0] , list(x[1:]))

(a,1,2,3,4), (b,4,5,6),(c,1,3)[a,(1,2 ,3,4)], [b,(4,5,6)], [c,(1,3)]

最佳答案

在 Scala 中,元组很难以通用方式处理(它会在 Scala 3 中改变),因此最直接的解决方案就是创建具有重载函数的辅助对象:

object TupleUtil {   
def splitHead[K,V](t: (K,V,V)): (K,(V,V)) = t._1 -> (t._2, t._3)
def splitHead[K,V](t: (K,V,V,V)): (K,(V,V,V)) = t._1 -> (t._2, t._3, t._4)
def splitHead[K,V](t: (K,V,V,V,V)): (K,(V,V,V,V)) = t._1 -> (t._2, t._3, t._4, t._5)
//etc up to 22
}

或者如果你可以使用 shapeless,那么你可以简单地做:

import shapeless.syntax.std.tuple._

(t.head, t.tail)

要使用它,只需将它添加到您的build.sbt:

libraryDependencies += "com.chuusai" %% "shapeless" % "2.3.3"

关于scala - scala rdd 中键的元组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56228104/

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