我想使用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列collect。
id_list = [x[0] for x in df.filter('Match = False').select('Row_id').collect()]
id_list
[2, 3, 4, 5, 6]