簡體   English   中英

Python中Spark RDD的列操作

[英]Column operation on Spark RDDs in Python

我有一個包含許多列(例如數百個)的RDD,並且我的大部分操作都在列上,例如,我需要從不同的列創建許多中間變量。

最有效的方法是什么?

我從CSV文件創建一個RDD:

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 

我需要創建一個新列或一個變量,作為計算值= 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

最好的方法是什么?

僅需一張地圖就足夠了:

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)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM