筛选PySpark中列表中具有值的行



我有一个值列表:

my_list = ["temp1","temp2", "temp10", "temp15"]

我正试图从列"中删除行;值";具有此列表中的值。

我尝试过的代码:

res = res.filter((res.value == 'temp1') | (res.value == 'temp2') |
(res.value == 'temp10') | (res.value == 'temp15'))

但是,还有其他方法可以直接在列表中循环并进行筛选吗?(因为我的列表有30个元素(。

使用isin:

res = res.filter(res.value.isin(my_list))

示例:

res = spark.createDataFrame([('temp1',), ('x',)], ['value'])
res.show()
# +-----+
# |value|
# +-----+
# |temp1|
# |    x|
# +-----+
my_list = ["temp1", "temp2", "temp10", "temp15"]
res = res.filter(res.value.isin(my_list))
res.show()
# +-----+
# |value|
# +-----+
# |temp1|
# +-----+

最新更新