apache-spark - 无法处理 pyspark 中包含 df.collect() 方法的代码
问题描述
我想使用 pyspark 在我的数据框中获取 'Match=False' 的 'Row_id' 值。我使用的以下代码工作得很好。但是如果数据框的行数超过 1000,则相同的代码将无法执行。有人请指导我为大文件实现相同的结果吗?文件的格式可以是 csv、json、parquet 之类的任何格式。
listt=[]
for x in range(len(dat.collect())):
for y in range(len(dat.collect()[x])):
if dat.collect()[x][y]==False:
listt=listt+[dat.collect()[x][0]]
我的数据框如下所示。
Row_id Name Months Match
1 elissa 20 TRUE
2 carlson 30 FALSE
3 jose 13 FALSE
4 sara 2 FALSE
5 meera 5 FALSE
6 kaarlos 8 FALSE
7 chris 1 TRUE
8 bruse 9 TRUE
9 john 24 TRUE
10 deppy 35 TRUE
解决方案
我认为您可以通过过滤数据框并仅选择 id 列来选择数据,收集。
id_list = [x[0] for x in df.filter('Match = False').select('Row_id').collect()]
id_list
[2, 3, 4, 5, 6]
推荐阅读
- reactjs - 如何在 React 中实现模态之间的转换?
- google-apps-script - 如何将 TimeItem 添加到开关盒
- android - Flutter background_location 不会在后台更新位置
- reactjs - 创建的选择组件上的 onChange 函数
- css - CSS 属性“连字符”在具有相同浏览器版本的其他机器上不起作用
- c# - 如何在 C# 上从 Oracle 调用函数?
- javascript - 如何创建 JS Canvas 自上而下的雨效果或反向扭曲速度
- mysql - MYSQL 在哪里存储“UPDATE CURRENT_TIMESTAMP”的逻辑
- c# - 如何让 EF Core 设计工具读取自定义配置?
- apache-superset - 如何更改 Superset 的表数据源?