Python 在数据帧上使用where()或filter()时出错

Python 在数据帧上使用where()或filter()时出错,python,pyspark,boolean-expression,pyspark-dataframes,Python,Pyspark,Boolean Expression,Pyspark Dataframes,我想检查Dataframe列first_id中的值是否在我拥有的python id列表中,如果是,那么它应该通过过滤器 first_id_list = [1,2,3,4,5,6,7,8,9] other_ids = id_dataframe.where(ids["first_id"] in first_id_list).select("other_id") 我在用python编写,id\u数据帧是PySpark数据帧,first\u id\u list是python整数列表 我得到的错误是:

我想检查Dataframe列
first_id
中的值是否在我拥有的python id列表中,如果是,那么它应该通过过滤器

first_id_list = [1,2,3,4,5,6,7,8,9]

other_ids = id_dataframe.where(ids["first_id"] in first_id_list).select("other_id")
我在用python编写,
id\u数据帧
是PySpark数据帧,
first\u id\u list
是python整数列表

我得到的错误是:

ValueError: Cannot convert column into bool: please use '&' for 'and', '|' for 'or', '~' for 'not' when building DataFrame boolean expressions.

此表达式中有一个问题:
id[“first\u id”]在first\u id\u列表中

ids[“first_id”]
是一个Pyspark列
first\u id\u list
是一个Python列表

where()

必须使用Pyspark列方法
isin()
(文档:)

答复:

other_ids = id_dataframe.where(ids["first_id"].isin(first_id_list)).select("other_id")

现在
ids[“first\u id”].isin(first\u id\u list)
是一个返回布尔列的数据帧布尔表达式。

此表达式中有一个问题:
ids[“first\u id”]在first\u id\u list中

ids[“first_id”]
是一个Pyspark列
first\u id\u list
是一个Python列表

where()

必须使用Pyspark列方法
isin()
(文档:)

答复:

other_ids = id_dataframe.where(ids["first_id"].isin(first_id_list)).select("other_id")

现在
ids[“first\u id”].isin(first\u id\u list)
是一个返回布尔列的数据帧布尔表达式。

感觉像个白痴,因为这显然是文档中的“isin()”。。。但是它起作用了,谢谢你花时间回答!感觉自己像个白痴,因为这显然是“isin()”文档。。。但是它起作用了,谢谢你花时间回答!