【发布时间】:2020-04-20 14:26:36
【问题描述】:
我正在尝试解决一个简单的字数统计问题,并试图弄清楚这是否可以通过使用 map、filter 和 reduce 来完成。
以下是一个wordRDD(用于spark的列表)的示例:
myLst = ['cats', 'elephants', 'rats', 'rats', 'cats', 'cats']
我只需要数单词并以元组格式呈现:
counts = [('cat', 1), ('elephant', 1), ('rat', 1), ('rat', 1), ('cat', 1)]
我尝试使用简单的 map() 和 lambdas 作为:
counts = myLst.map(lambdas x: (x, <HERE IS THE PROBLEM>))
我的语法可能有误或混淆了。 P.S.:这不是重复的问题,因为其余答案使用 if/else 或列表推导给出建议。
感谢您的帮助。
【问题讨论】:
-
你是怎么得到
counts的?您的预期结果与您想要的输入完全无关。 -
lambda不是lambdas。 -
@Hobbes,感谢您的指正.. 我是一个 java 人,所以混合它! :P
-
明确一点,如果您正在处理 rdd,您可能应该先使用
map,然后再使用reduceByKey。map不是一个急切的操作。 -
@zengr 完全同意
标签: python python-3.x apache-spark