向Spark Scala中的rdd添加一个列,该列具有秩
不幸的是,我们仍然必须使用spark 1.0.0,并且需要使用RDD。 我有一个从CSV文件创建的RDD向Spark Scala中的rdd添加一个列,该列具有秩,scala,apache-spark,rdd,rank,Scala,Apache Spark,Rdd,Rank,不幸的是,我们仍然必须使用spark 1.0.0,并且需要使用RDD。 我有一个从CSV文件创建的RDD val serialRDD = sc.textFile(path) 如果我们打印RDD的每一行,就会得到如下内容(一个id和一个字符串): 我希望能够添加另一个列作为另一个id,它将是一个类似“SERIAL-”的字符串,其中秩将是1,2,3等,自动递增1 输出应如下所示: 1929 abc SERIAL-1 2384 def SERIAL-2 8753 ghi SERIAL-3
val serialRDD = sc.textFile(path)
如果我们打印RDD的每一行,就会得到如下内容(一个id和一个字符串):
我希望能够添加另一个列作为另一个id,它将是一个类似“SERIAL-”的字符串,其中秩将是1,2,3等,自动递增1
输出应如下所示:
1929 abc SERIAL-1
2384 def SERIAL-2
8753 ghi SERIAL-3
3893 jkl SERIAL-4
如何使用RDD完成此操作?您可以使用
zipWithIndex
和map
完成此操作:
serialRDD.zipWithIndex.map{ case (r, i) => (r._1, r._2, s"SERIAL-${i+1}") }
我使用字符串插值来获得
SERIAL-X
字符串。我还增加了索引,因为zipWithIndex
从索引0开始。您可以使用zipWithIndex
和map
来完成:
serialRDD.zipWithIndex.map{ case (r, i) => (r._1, r._2, s"SERIAL-${i+1}") }
我使用字符串插值来获得SERIAL-X
字符串。我还增加了索引,因为zipWithIndex
从索引0开始