我正在将一些过滤器应用于Spark 1.6和Spark 2.2中的数据帧,并且得到了完全不同的行为。我正在执行的代码是:
val df = Seq(
(1, 2),
(3, 4),
(5, 6),
(7, 8)
).toDF("col1", "col2")
val filter = "col1 rlike '[\\x00-\\x1F\\x7F]'"
df.filter(filter).count
// This gives me 0 in Spark 1.6 and 4 in Spark 2.2
val filter2 = "col1 rlike '[\\\\x00-\\\\x1F\\\\x7F]'"
df.filter(filter2).count
// This gives me 4 in Spark 1.6 and 0 in Spark 2.2
只是在重要的情况下,Spark 1.6才与Scala 2.10.5和2.11.8的Spark 2.2一起执行。
为什么会发生这种情况?