如何从Pyspark数据框列中选择一些行并将其添加到新数据框?

时间:2019-11-14 05:18:43

标签: dataframe pyspark pyspark-dataframes

我有10个数据帧,df1...df10有2列:

df1

id | 2011_result

df2

id | 2012_result, ... ...

df3

id| 2018_result

我想选择一些2011_result值小于阈值的ID。

 sample_ids=df1['2011_result']<threshold].sample(10)['id'].values 

此后,我需要从列表的所有其他数据框中选择其他列的值。

类似这样的东西:

df2[df2['id'].isin(sample_ids)]['2012_result'] df3[df3['id'].isin(sample_ids)]['2013_result']

您能帮忙吗?

1 个答案:

答案 0 :(得分:1)

首先,您可以使用:

import pyspark.sql.functions as F

sample_ids=df1.filter(F.col("2011_result") < threshold)

然后,您可以使用left_anti连接过滤掉df2df3

df2 = df2.join(sample_ids.select("id"), on="id", how="left_anti")