2016-10-19 2 views
1

К сожалению, нам все равно придется использовать искру 1.0.0 и вам нужно работать с RDD. У меня есть RDD, созданный из файла CSV.Добавить колонку с рангом на rdd в Spark Scala

val serialRDD = sc.textFile(path) 

Если мы выводим каждую строку РДА, мы получаем что-то вроде этого (идентификатор и строки):

1929 abc 
2384 def 
8753 ghi 
3893 jkl 

Я хочу, чтобы иметь возможность добавить еще один столбец являющегося другой идентификатор, который будет строка, как «Serial-», где RANK будет 1,2,3 и т.д. автоинкрементом 1

Результат должен быть, как:

1929 abc SERIAL-1 
2384 def SERIAL-2 
8753 ghi SERIAL-3 
3893 jkl SERIAL-4 

Как я могу сделать это с помощью RDD?

ответ

4

Вы можете использовать zipWithIndex и map, чтобы сделать это:

serialRDD.zipWithIndex.map{ case (r, i) => (r._1, r._2, s"SERIAL-${i+1}") } 

Я использовал строки интерполяции, чтобы получить SERIAL-X строку. Я также увеличил индекс, потому что zipWithIndex начинается с индекса 0.

Смежные вопросы