首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >星火之火(rdd.map)(_.swap)

星火之火(rdd.map)(_.swap)
EN

Stack Overflow用户
提问于 2016-01-08 06:42:35
回答 4查看 7.2K关注 0票数 5

我对斯卡拉和斯派克都很陌生。有谁能解释一下

代码语言:javascript
复制
rdd.map(_.swap)

?如果我查看Scala/Spark,就无法在RDD类中找到swap方法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-01-08 06:56:12

swap是Scala 元组上的一种方法。它相互交换Tuple2 (或对)的第一个和第二个元素。例如:

代码语言:javascript
复制
scala> val pair = ("a","b")
pair: (String, String) = (a,b)

scala> val swapped = pair.swap
swapped: (String, String) = (b,a)

RDD的map函数将给定的函数应用于RDD的每个元素。在这种情况下,要应用于每个元素的函数很简单

代码语言:javascript
复制
_.swap

在这种情况下,下划线在Scala中写匿名函数时是简写的,它与传递给您的函数的参数有关,而不给它命名。因此,上面的片段可以重写为如下内容:

代码语言:javascript
复制
rdd.map{ pair => pair.swap }

因此,您发布的代码片段将交换RDD的每一行中元组/对的第一个和第二个元素。

票数 10
EN

Stack Overflow用户

发布于 2016-01-08 06:55:59

只有当rddRDD[Tuple2[T1,T2]]类型时才可用,所以swapTuple2

票数 3
EN

Stack Overflow用户

发布于 2019-03-05 04:33:49

在Python中,它的工作方式如下:

代码语言:javascript
复制
rdd.map(lambda x: (x[1], x[0]))

这将将(a,b)交换为(b,a)中的键值对。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34670957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档