Python 在数据帧上使用where()或filter()时出错
我想检查Dataframe列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整数列表 我得到的错误是:
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()”文档。。。但是它起作用了,谢谢你花时间回答!