首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Scala中向rdd中添加一个级别为级别的列

在Scala中向rdd中添加一个级别为级别的列
EN

Stack Overflow用户
提问于 2016-10-19 14:18:51
回答 1查看 730关注 0票数 1

不幸的是,我们仍然需要使用spark 1.0.0,并且需要使用RDDs。我有一个从CSV文件创建的RDD。

代码语言:javascript
复制
val serialRDD = sc.textFile(path)

如果我们打印RDD的每一行,我们会得到如下内容(一个id和一个字符串):

代码语言:javascript
复制
1929  abc
2384  def
8753  ghi
3893  jkl

我希望能够添加另一列为另一个id,它将是一个类似于“串行”的字符串,其中排名将为1、2、3等,并自动递增1。

产出应类似于:

代码语言:javascript
复制
1929  abc  SERIAL-1
2384  def  SERIAL-2
8753  ghi  SERIAL-3
3893  jkl  SERIAL-4

如何使用RDD完成这一任务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-19 14:34:04

您可以使用zipWithIndexmap来完成它:

代码语言:javascript
复制
serialRDD.zipWithIndex.map{ case (r, i) => (r._1, r._2, s"SERIAL-${i+1}") }

我使用字符串插值来获得SERIAL-X字符串。我还增加了索引,因为zipWithIndex从索引0开始。

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

https://stackoverflow.com/questions/40134022

复制
相关文章

相似问题

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