应用函数来激发RDD

时间:2016-02-19 16:15:25

标签: python apache-spark pyspark

我正在尝试对推文做一些分析。我想将.lower()应用于推文中的每个text。我使用了以下代码

    actual_tweets = actual_tweets.map(lambda line: line["text"].lower() and line["quoted_status"]["text"].lower() if 'quoted_status' in line else line["text"].lower()).collect()

问题在于这是因为我使用的是map,这行代码会将text属性转换为小写,并返回唯一的text属性,忽略所有其他属性我想要的是。我只是想知道spark transformations是否有任何帮助我达到我想要的目的。

1 个答案:

答案 0 :(得分:2)

例如,您可以返回(input,transformed_input)元组:

def transform(line):
    if 'quoted_status' in line:
        return (
            # Is `and` what you really want here?
            line, line["text"].lower() and line["quoted_status"]["text"].lower() 
        )
    else:
        return line, line["text"].lower()

actual_tweets.map(transform)