2016-02-19 21 views
-1

我正在嘗試對推文進行一些分析。我想在推文中每text應用.lower()。我用下面的代碼應用函數激發RDD

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幫助我實現我想要的。

回答

2

例如,您可以返回(輸入,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)