我想使用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
答案 0 :(得分:0)
我认为您可以通过过滤数据框来选择数据,并仅选择id列进行收集。
id_list = [x[0] for x in df.filter('Match = False').select('Row_id').collect()]
id_list
[2, 3, 4, 5, 6]