如何通过pyspark数据框中的多个值查询一列?

sus*_*san 1 python dataframe apache-spark pyspark

spark.read.csv()在 pyspark 中得到了一个数据框。我可以使用df.filter(df['mobile'] == 'Vivo'). 现在,我想按多个值过滤“移动”列。

例如,我有一个band_list=['Apple','Samsung','Vivo']

我想过滤'mobile'此 band_list 中的值。

我知道一种方法是df.filter((df['mobile'] == 'Apple') | (df['mobile'] == 'Samsung')|(df['mobile'] == 'Vivo')),但它不灵活。

有人可以告诉我解决这个问题的另一种方法吗?

chl*_*bek 5

你可以使用isin

df = spark.createDataFrame(['abc123','Apple','Samsung','ZXC321','Vivo'],"string")
band_list=['Apple','Samsung','Vivo']
df.filter(df.value.isin(band_list)).show()

+-------+
|  value|
+-------+
|  Apple|
|Samsung|
|   Vivo|
+-------+
Run Code Online (Sandbox Code Playgroud)