我想把这个从R改写为Pyspark,有什么好看的建议吗?
array <- c(1,2,3)
dataset <- filter(!(column %in% array))
答案 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。