1

我想要一个更具交互性的仪表板。就像从数据库中读取数据,将其提供给选择框,选择框的 onchange 发送值并运行查询。

我想在选定的值上使用 zeppelin bcz 来实现这一点,我必须显示分析。

实现这一目标的方法是什么,这是否可以通过 zeppelin 实现。

我尝试使用选择框,但我无法保存所选值并将其发送到下一个查询并执行它。就像是

select age, count(1) value 
from bank 
where marital="${marital=single,single|divorced|married}" 
group by age 
order by age

我不知道如何存储此参数并将所选参数从一个段落发送到另一个段落

或者像从 UI 处理所有这些事情,让我们说 javascript html 并将选定的值作为参数发送到 zeppelin?使用网址时这样的事情

<iframe src="http://myipaddress:8080/#/notebook/2BWCNP7V8/paragraph/20160831-115204_1774035770?asIframe&param1=value1&param2=value2" width="500" height="300"  scrolling="no" frameBorder="0" id="iframe1" style="text-align:center;" >Browser not compatible.</iframe>

并在我的 zeppelin 段落中使用这些 param1=value1¶m2=value2?技术上可行与否我不明白。请帮助我如何实现这一目标?提前致谢 :)

4

1 回答 1

1

我们可以使用以下代码获取所有婚姻

val maritals = bank.select("marital").distinct.collect.map(_.getString(0))

并转换为 seq ZeppelinContext 想要

val seq = mairitals.zipWithIndex.map{case (x,y) => (y.toString, x)}.toSeq

然后我们可以这样选择

val index = z.select("marital", "1", seq)
val marital = seq(index.toString.toInt)._2

并可marital用于进一步加工。喜欢。

val sql = s"""select distinct job from bank where marital=="$marital""""

sqlContext.sql(sql).show

或者就像我使用spark-highcharts 一样。在这种情况下,我想绘制某些婚姻状况的年龄平均余额。

highcharts(bank.filter(col("marital") === marital)
  .series("x" -> "age", "y" -> avg(col("balance")))
  .orderBy(col("age"))).plot()

注意:只有带有 的段落select会在值更改时自动执行。

于 2016-09-02T07:15:41.947 回答