Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark PySpark数据帧的类SQL NOT IN子句_Apache Spark_Pyspark - Fatal编程技术网

Apache spark PySpark数据帧的类SQL NOT IN子句

Apache spark PySpark数据帧的类SQL NOT IN子句,apache-spark,pyspark,Apache Spark,Pyspark,例如,在SQL中,我们可以从col1不在('A','B')的表中选择* 我想知道是否有一个Pypark等效物。我能够在子句中找到类似SQL的的isin函数,但在中找不到的函数,我只是遇到了同样的问题并找到了解决方案。如果要对任何条件求反(在pySpark中表示为列类),则存在求反运算符~,例如: df.where(~df.flag.isin(1, 2, 3)) # records with flag NOT IN (1, 2, 3) 或者,您可以执行以下操作: df = df.filter(d

例如,在SQL中,我们可以从col1不在('A','B')的表中选择*


我想知道是否有一个Pypark等效物。我能够在子句中找到类似SQL的
isin
函数,但在
中找不到
的函数,我只是遇到了同样的问题并找到了解决方案。如果要对任何条件求反(在pySpark中表示为
类),则存在求反运算符
~
,例如:

df.where(~df.flag.isin(1, 2, 3)) # records with flag NOT IN (1, 2, 3)

或者,您可以执行以下操作:

df = df.filter(df.sbg_digitalId.isin(1, 2, 3) == False)

也可以从F.col()调用isin()方法,如下所示:

import pyspark.sql.functions as F

df.filter(~F.col("col1").isin('A','B'))

允许访问IDE中的“isin”文档(当然,如果您正在使用的话)。

这有帮助吗<代码>foo NOT IN('a','b')==NOT(foo IN('a','b'))
为什么您更喜欢这种方法而不是公认答案中提出的方法?在某些特定的情况下,这可能会更好吗?我可能会在答案中添加它,但是的,我更喜欢列对象的这种方法,因为可以通过调用df字段(即df.flag)以不同的方式访问库方法和文档,例如,它不提供对isin文档的访问