我对斯卡拉和斯派克都很陌生。有谁能解释一下
rdd.map(_.swap)?如果我查看Scala/Spark,就无法在RDD类中找到swap方法。
发布于 2016-01-08 06:56:12
swap是Scala 元组上的一种方法。它相互交换Tuple2 (或对)的第一个和第二个元素。例如:
scala> val pair = ("a","b")
pair: (String, String) = (a,b)
scala> val swapped = pair.swap
swapped: (String, String) = (b,a)RDD的map函数将给定的函数应用于RDD的每个元素。在这种情况下,要应用于每个元素的函数很简单
_.swap在这种情况下,下划线在Scala中写匿名函数时是简写的,它与传递给您的函数的参数有关,而不给它命名。因此,上面的片段可以重写为如下内容:
rdd.map{ pair => pair.swap }因此,您发布的代码片段将交换RDD的每一行中元组/对的第一个和第二个元素。
发布于 2016-01-08 06:55:59
只有当rdd是RDD[Tuple2[T1,T2]]类型时才可用,所以swap是Tuple2
发布于 2019-03-05 04:33:49
在Python中,它的工作方式如下:
rdd.map(lambda x: (x[1], x[0]))这将将(a,b)交换为(b,a)中的键值对。
https://stackoverflow.com/questions/34670957
复制相似问题