2015-03-02 78 views
0

新星火并希望看到以优化下面的代码的最佳方式。 我有5GB文件的文件用50列,其余(下面在可变位置)大约需要30列出来。然后在其上运行各种统计数据。优化星火数字功能(蟒蛇)

def numStats(position): 
    results = [] 
    for lines in position: 
     stats = [0,0,0,0,0,0,0,0] 
     myData = dataSplit.map(lambda arr: (arr[lines])) 
     if myData.take(1) != [u'']: 
      myData3 = myData.map(lambda line: line.split(',')).map(lambda fields: ("Column", float(fields[0]))).map(lambda (column, value) : (value)).persist(StorageLevel.MEMORY_AND_DISK) 
      stats[0] = myData3.sum() 
      results.append(stats[0]) 
      stats[1] = myData3.min() 
      results.append(stats[1]) 
      stats[2] = myData3.max() 
      results.append(stats[2]) 
      stats[3] = myData3.mean() 
      results.append(stats[3]) 
      stats[4] = myData3.stdev() 
      results.append(stats[4]) 
      stats[5] = myData3.variance() 
      results.append(stats[5]) 
      stats[6] = myData3.sampleStdev() 
      results.append(stats[6]) 
      stats[7] = myData3.sampleVariance() 
      results.append(stats[7]) 
+0

你的问题是计算单通道内的所有统计数据? – javadba 2015-03-03 00:19:47

+0

有什么你可以在我怎么可能能够进一步优化代码看? – theMadKing 2015-03-03 16:23:22

回答