Pyspark数据框运算符"不在"

时间:2016-10-27 14:26:43

标签: pyspark

我想把这个从R改写为Pyspark,有什么好看的建议吗?

array <- c(1,2,3)
dataset <- filter(!(column %in% array))

7 个答案:

答案 0 :(得分:36)

在pyspark你可以这样做:

array = [1, 2, 3]
dataframe.filter(dataframe.column.isin(*array) == False)

答案 1 :(得分:8)

df_result = df[df.column_name.isin([1, 2, 3]) == False]

答案 2 :(得分:6)

采用运算符表示相反

df_filtered = df.filter(~df["column_name"].isin([1, 2, 3]))

答案 3 :(得分:3)

略有不同的语法和“日期”数据集:

toGetDates={'2017-11-09', '2017-11-11', '2017-11-12'}
df= df.filter(df['DATE'].isin(toGetDates) == False)

答案 4 :(得分:1)

不需要

*。所以:

list = [1, 2, 3]
dataframe.filter(~dataframe.column.isin(list))

答案 5 :(得分:0)

您还可以循环数组和过滤器:

=Concatenate(A,">",B,">",C,">",D,">",E,">",F)

答案 6 :(得分:0)

您可以使用.subtract()好友。

示例:

df1 = df.select(col(1),col(2),col(3)) 
df2 = df.subtract(df1)

通过这种方式,将df2定义为不是df1的所有df。