SQL中的Zeppelin动态表单下拉值

van*_*d39 3 dynamic-forms apache-spark apache-spark-sql apache-zeppelin

我的齐柏林飞艇笔记本中有一个下拉菜单元素

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

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

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

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

eli*_*sah 5

这是完全可能的,这是%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")))
Run Code Online (Sandbox Code Playgroud)

单元格2:

z.show(df.filter($"item"===instrument))
Run Code Online (Sandbox Code Playgroud)

dynamic_spark

使用%sql以下替代解决方案

%sql select * from table_name where item="${item=A,A|B|C}" 
Run Code Online (Sandbox Code Playgroud)

dynamic_sql

PS:instrument设置在B,2上