【问题标题】:Column operation on Spark RDDs in PythonPython 中 Spark RDD 的列操作
【发布时间】:2016-02-06 07:53:42
【问题描述】:

我有一个包含许多列(例如数百个)的 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

最好的方法是什么?

【问题讨论】:

    标签: python apache-spark pyspark rdd


    【解决方案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)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-11
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      相关资源
      最近更新 更多