Databricks:将参数插入%sql单元格中查询的LIKE子句

时间:2019-10-01 14:44:11

标签: databricks

在一个Databricks笔记本中,我有一个小部件,可以为参数kw设置值。我需要在查询中使用该值作为LIKE子句的一部分。下面的代码段可以运行,但不会返回任何内容(即使应该返回任何内容)。

%sql

SELECT *
FROM table 
WHERE keyword LIKE '%getArgument("kw")%'

2 个答案:

答案 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%'