Zeppelin Dynamic Form Drop Down value in SQL

2019-02-25 11:08发布

问题:

I have a dropdown element in my Zeppelin notebook

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

I want to use the value of this variable instrument in my sql. For e.g., my next paragraph in the notebook contains

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

Is this possible? If yes, what would the syntax look like?

回答1:

This is completely possible and here is an example with both %spark and %sql interpreters :

cell 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")))

cell 2:

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

alternative solution using %sql :

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

PS: instrument is set on B,2



回答2:

The other answers haven't really addressed the issue, the syntax you are looking for is:

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

Cheers.