2016-02-06 2 views
1

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

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

создать 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 

Каков наилучший способ сделать это?

ответ

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)] 
Смежные вопросы