python - pyspark:如何使用过滤器功能将 rdd 与列表进行比较
问题描述
所以我有一个清单
list = [11, 5, 7, 2, 18]
和一个列表的 RDD
RDD = sc.parallelize([5, 4, 3, 2, 6])
我希望 RDD 上的过滤器函数返回每个元素,当与列表中的相应元素相加时,总和小于或等于 10。所以在这个例子中,我希望它返回一个元素为 4 的 RDD, 3, 2. 我该怎么做?
编辑:所以我尝试将 RDD 转换为键是索引的键值对,然后我这样做
def compare(x, list_):
i = x[0]
if x[1] + list_[i]) <= 10:
return x
rdd_new = rdd.filter(compare)
但这似乎不起作用,因为当我rdd_new.collect()
遇到一堆错误时
解决方案
推荐阅读
- reactjs - 通过 google 身份验证从 Auth0 AccessToken 获取用户电子邮件
- vue.js - Vuetify 如何在所有验证规则都为真之前禁用按钮?
- angular - Angular 8 - 如何覆盖 BrowserModule 以进行多应用延迟加载?
- css - 在引导可见打印 div 中打印 iframe Google 地图时出现问题
- angular - 以编程方式删除从 Angular 组件样式导入的 css:窗口顶部框架中的 [] 数组
- linux - 将触发器添加到 Jenkins 管道
- python - 类方法中的变量是否也可以从外部访问?
- reactjs - 带有 setTimeout 的递归函数使开玩笑测试超过最大调用堆栈大小
- javascript - 从右到左和从下到上滚动的插件
- python - 如何将遍历列表的新结果附加到数据框中的新列中