SQL中的Zeppelin Dynamic Form下拉值

时间:2016-08-05 02:33:17

标签: apache-spark apache-spark-sql apache-zeppelin dynamic-forms

我的Zeppelin笔记本中有一个下拉元素

val instrument = z.select("Select Item", Seq(("A", "1"),("B", "2"),("C", "3")))

我想在我的sql中使用此变量instrument的值。例如,笔记本中的下一段包含

%sql select * from table_name where item='<<instrument selected above>>'

这可能吗?如果是,语法会是什么样的?

2 个答案:

答案 0 :(得分:4)

这是完全可能的,以下是%spark%sql解释器的示例:

单元格1:

val df = Seq((1,2,"A"),(3,4,"B"),(3,2,"B")).toDF("x","y","item")
df.registerTempTable("table_name")
val instrument = z.select("Select Item", Seq(("A", "1"),("B", "2"),("C", "3")))

单元格2:

z.show(df.filter($"item"===instrument))

dynamic_spark

使用%sql 的替代解决方案:

%sql select * from table_name where item="${item=A,A|B|C}" 

dynamic_sql

PS:instrument设置在B,2

答案 1 :(得分:1)

其他答案并未真正解决问题,您正在寻找的语法是:

where item = "${Select Item=,1(A)|2(B)|3(C)}"

干杯。