/ / Prečo „s“ s „rlike“ v Spark SQL nefunguje? - apache-spark-sql

Prečo "\ s" s "rlike" v Spark SQL nefunguje? - apache-spark-sql

Je to zvláštne, že „s“ nefunguje, ako je uvedený nižšie:

scala> case class Item(id: Int, name:String)
defined class Item

scala> val df = Seq((1, "hello"), (2, " "))
df: Seq[(Int, String)] = List((1,hello), (2," "))

scala> df.toDF("id", "name").as[Item].filter("name rlike "\s"").show()
+---+----+
| id|name|
+---+----+
+---+----+

odpovede:

0 pre odpoveď č. 1

ako LanguageManual UDF popísané, rlike potrebujú dvojitý uniknutý vzor \s.

Zatiaľ čo v iskrovom škrupine, Scala raz unikla. Takže viac je potrebné:

scala> df.toDF("id", "name").as[Item].filter("name rlike "\\s"").show()
+---+----+
| id|name|
+---+----+
|  2|    |
+---+----+

scala> df.toDF("id", "name").as[Item].filter("name rlike "\\w"").show()
+---+-----+
| id| name|
+---+-----+
|  1|hello|
+---+-----+

Alebo použite reťazce bez úniku, ako napríklad:

scala> val er = """name rlike "\s""""
er: String = name rlike "\s"

scala> df.toDF("id", "name").as[Item].filter(er).show()
+---+----+
| id|name|
+---+----+
|  2|    |
+---+----+