2017-03-02 79 views
0

我试图将RDD中的列表中的所有元素转换为浮点数。这是我做过什么: RDD.map(lambda line:line.encode("ascii", "ignore").strip().split()).map(convertToFloat),并转换为浮动看起来像这样:将RDD中的元素列表转换为浮点数pyspark

def convertToFloat(lines): 
     returnedLine = []  
     for x in lines: 
      returnedLine.append(float(x))   
     return returnedLine 

但这运转太慢。有没有办法用lambda函数替换map(convertToFloat)部分?

回答

0

不使用lambda而是列表理解

def convertToFloat(lines): 
    returnedLine = [float(x) for x in lines] 

,如果你真的想在上面的λ:

convertToFloat = lambda lines: [float(x) for x in lines] 

但速度增益来自列表中理解,而不是从拉姆达。

+0

谢谢你!列表理解的工作更快一点 –

+0

只是接受答案,如果你认为它是一个可以帮助你的答案。 http://stackoverflow.com/help/someone-answers –

+0

非常感谢您的帮助Jean! –