PySpark SQL中filter函数添加OR条件的语法错误求助
问题解决:Spark filter函数添加OR条件的正确语法
你的错误是把第二个OR条件写到了filter的lambda表达式外面,还出现了括号配对错误。正确写法是把两个判断条件都放在x ->后面的逻辑表达式里,同时确保filter函数的括号正确闭合。
正确代码示例:
new_DF = old_df.withColumn("reduced_calls", \ F.expr("filter(calls, x -> substring(x.call, 0, 23) == 'get test/call' OR substring(x.call, 0, 10) == 'get another')"))
错误点说明:
- 原报错代码里,
filter((calls, x -> ...))多了一层不必要的括号,而且第一个条件后就闭合了lambda的括号,导致第二个条件属于filter函数外部,语法不合法。 - Spark SQL的
filter函数语法为filter(array_column, element -> condition),所有判断逻辑都要写在箭头后的条件部分。
内容的提问来源于stack exchange,提问作者Blue Clouds
相关产品推荐
相关产品推荐

