我的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>>'
这可能吗?如果是,语法会是什么样的?
答案 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))
使用%sql
的替代解决方案:
%sql select * from table_name where item="${item=A,A|B|C}"
PS:instrument
设置在B,2
答案 1 :(得分:1)
其他答案并未真正解决问题,您正在寻找的语法是:
where item = "${Select Item=,1(A)|2(B)|3(C)}"
干杯。