Операция столбца в Spark RDD в Python

У меня есть RDD со МНОГИМИ столбцами (например, сотни), и большая часть моей работы выполняется в столбцах, например. Мне нужно создать много промежуточных переменных из разных столбцов.

Каков наиболее эффективный способ сделать это?

Я создаю RDD из файла CSV:

dataRDD = sc.textFile("/...path/*.csv").map(lambda line: line.split(",”))

Например, это даст мне RDD, как показано ниже:

123, 523, 534, ..., 893 
536, 98, 1623, ..., 98472 
537, 89, 83640, ..., 9265 
7297, 98364, 9, ..., 735 
...... 
29, 94, 956, ..., 758 

Мне нужно создать новый столбец или переменную как calculatevalue = 2ndCol+19thCol и создать новый RDD.

123, 523, 534, ..., 893, calculatedvalue 
536, 98, 1623, ..., 98472, calculatedvalue 
537, 89, 83640, ..., 9265, calculatedvalue 
7297, 98364, 9, ..., 735, calculatedvalue 
...... 
29, 94, 956, ..., 758, calculatedvalue

Как лучше всего это сделать?


person dataisbeautiful    schedule 06.02.2016    source источник


Ответы (1)


Достаточно только карты:

rdd = sc.parallelize([(1,2,3,4), (4,5,6,7)])

# just replace my index with yours
newrdd = rdd.map(lambda x: x + (x[1] + x[2],)) 

newrdd.collect() # [(1,2,3,4,6), (4,5,6,7,12)]
person Alberto Bonsanto    schedule 06.02.2016