PySpark在RDD上运行多个函数

时间:2015-03-10 15:32:37

标签: python hadoop apache-spark

您好我有示例代码:

for column in position:
    myData = dataSplit.map(lambda arr: (arr[column]))\
        .map(lambda line: line.split(','))\
        .map(lambda fields: ("Column", fields[0]))\
        .map(lambda (column, value) : value)\
        .filter(lambda line : filterWithAccum(line))\
        .map(lambda (value) : float(value))\
        .persist(StorageLevel.MEMORY_AND_DISK)
    results.append(myData.sum())
    results.append(myData.stats())
    results.append(myData.variance())
    results.append(myData.sampleStdev())
    results.append(myData.sampleVariance())

有没有办法在一个passultiple函数中运行而不是运行每个1函数的5个pass?持久化可以节省大量时间,但我觉得必须有更好的方法来浓缩这些。我最初有.min()。max()。mean(),但是.stats()会为你做那些,因此已经缩减了一些。

1 个答案:

答案 0 :(得分:3)

我没有收到您的问题,但StatCounter方法返回的.stats()对象已经有sumvariancesampleStddev和{{ 1}}字段。所以你可以做到

sampleVariance