Не похоже, что spark sql с ульем поддерживает «sql как». Вот пример кода, который я использую для тестирования в spark-shell
case class Department(id: String, name: String)
val department1 = new Department("123456", "Computer Science")
val department2 = new Department("789012", "Mechanical Engineering")
val department3 = new Department("345678", "Theater and Drama")
val department4 = new Department("901234", "Indoor Recreation")
val dSeq = Seq(department1, department2, department3, department4)
val dfd = dSeq.toDF()
dfd.registerTempTable("departments")
val re=sqlContext.sql("select * from departments where name like '*Rec*'")
re.show()
Это не покажет никакого результата. и я проверяю sqlContext, и это hiveContext
scala> sqlContext
res15: org.apache.spark.sql.SQLContext = org.apache.spark.sql.hive.HiveContext@4f03729f
Кто-нибудь знает, почему?
LIKE
использует простое регулярное выражение SQL, где подстановочный знак —%
('%Rec%'
), а не регулярные выражения Java. Для полной поддержки регулярных выражений используйтеRLIKE
. - person zero323   schedule 30.04.2016