python-3.x - 在 PySpark/Python RDD 中过滤
问题描述
我有一个list
这样的:
["Dhoni 35 WC 785623", "Sachin 40 Batsman 4500", "Dravid 45 Batsman 50000", "Kumble 41 Bowler 456431", "Srinath 41 Bowler 65465"]
应用过滤器后,我想要这样:
["Dhoni WC", "Sachin Batsman", "Dravid Batsman", "Kumble Bowler", "Srinath Bowler"]
我试过这种方式
m = sc.parallelize(["Dhoni 35 WC 785623","Sachin 40 击球手 4500","Dravid 45 击球手 50000","Kumble 41 Bowler 456431","Srinath 41 Bowler 65465"])
n = m.map(lambda k:k.split(' '))
o = n.map(lambda s:(s[0])) o.collect()
['Dhoni'、'Sachin'、'Dravid'、'Kumble'、'Srinath']
q = n.map(lambda s:s[2])
q.collect()
['WC'、'击球手'、'击球手'、'投球手'、'投球手']
解决方案
前提是,您的所有列表项都具有相同的格式,实现此目的的一种方法是使用map
.
rdd = sc.parallelize(["Dhoni 35 WC 785623","Sachin 40 Batsman 4500","Dravid 45 Batsman 50000","Kumble 41 Bowler 456431","Srinath 41 Bowler 65465"])
rdd.map(lambda x:(x.split(' ')[0]+' '+x.split(' ')[2])).collect()
输出:
['Dhoni WC', 'Sachin Batsman', 'Dravid Batsman', 'Kumble Bowler', 'Srinath Bowler']
推荐阅读
- c++ - C++ 错误:“<<”标记之前的预期主表达式
- python - 对于 Pandas,.loc 和 no loc 有什么区别
- javascript - 如何使用纯 javascript/jquery 将对象呈现为 html
- webpack - Webpack 加载器和插件之间的通信
- python - 如何使用python找到轨迹中最平滑的部分?
- mongodb - 数组数组上的MongoDB聚合查询项目
- http - 为什么不管我的超时设置为 5000 毫秒,okhttp 请求都会立即返回套接字异常?
- reactjs - 尽管 Docker 容器被列为“up”,但 localhost 未加载 React 应用程序
- laravel - 试图在 Laravel 8 中获取非对象的属性“id”
- java - Appengine Java 上的 getNamedDispatcher