我正在尝试在DataFrame上应用过滤条件的否定,如下所示.
!(`Ship Mode` LIKE '%Truck%')
Run Code Online (Sandbox Code Playgroud)
这是在下面抛出一个例外
Exception in thread "main" java.lang.RuntimeException: [1.3] failure: identifier expected
(!(`Ship Mode` LIKE '%Truck%'))
^
at scala.sys.package$.error(package.scala:27)
at org.apache.spark.sql.catalyst.SqlParser.parseExpression(SqlParser.scala:47)
at org.apache.spark.sql.DataFrame.filter(DataFrame.scala:748)
at Main.main(Main.java:73)
Run Code Online (Sandbox Code Playgroud)
在MySQL中,相同类型的负过滤条件正常工作.如下请见
mysql> select count(*) from audit_log where !(operation like '%Log%' or operation like '%Proj%');
+----------+
| count(*) |
+----------+
| 129 |
+----------+
1 row in set (0.05 sec)
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我,如果计划在将来的版本中修复Spark DataFrames,或者我应该提出JIRA.