在一个Databricks笔记本中,我有一个小部件,可以为参数kw
设置值。我需要在查询中使用该值作为LIKE子句的一部分。下面的代码段可以运行,但不会返回任何内容(即使应该返回任何内容)。
%sql
SELECT *
FROM table
WHERE keyword LIKE '%getArgument("kw")%'
答案 0 :(得分:0)
我不知道“ kw”代表什么,但我认为应该是:
sqlContext.sql("SELECT * FROM SomeTable WHERE SomeField LIKE CONCAT('%', kw, '%')")
使用适当的库:
import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc) // Make sure you use HiveContext
import sqlContext.implicits._
sqlContext.sql("SELECT * FROM SomeTable WHERE SomeField LIKE CONCAT('%', kw, '%')")
答案 1 :(得分:0)
这有效:
%sql
SELECT *
FROM table
WHERE keyword LIKE '%$kw%'