使用,isin时在列中正斜杠

问题描述

我似乎无法过滤其中包含斜杠的列。

例如,我的列看起来像“ A / B”,“ A / B / C”和“ A”或“ B”。

我使用以下语法将其过滤掉。

a = a.filter(a.column.isin('A/B','A/B/C')

它告诉我这个错误

SyntaxError:语法无效

你能告诉我为什么吗?

解决方法

无法在 Spark-2.4 中重现,可以通过传递包含 ['A/B','A/B/C'] 的值的列表来尝试。

Example:

#creating dataframe
df=spark.createDataFrame([('A/B',),('A/B/C',('A',('B',)],['a'])

df.show()
#+-----+
#|    a|
#+-----+
#|  A/B|
#|A/B/C|
#|    A|
#|    B|
#+-----+

from pyspark.sql.functions import *

df.filter(col("a").isin(['A/B','A/B/C'])).show()

df.filter(col("a").isin('A/B','A/B/C')).show()
#+-----+
#|    a|
#+-----+
#|  A/B|
#|A/B/C|
#+-----+