我正在尝试对推文做一些分析。我想将.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
是否有任何帮助我达到我想要的目的。
答案 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)