问题描述
我似乎无法过滤其中包含斜杠的列。
例如,我的列看起来像“ 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|
#+-----+