Есть ли лучший интерфейс для добавления поддержки Highcharts в Zeppelin?
Apache Zeppelin имеет хорошую поддержкуAngularJS, Пока есть разрыв между Scala и Javascript.
Я пытаюсь добавитьHighcharts поддержка Zeppelin, чтобы заполнить этот пробел. Основная цель состоит в том, чтобы построить это просто прямо изSpark DataFrame.
После пары раундов рефакторинга я придумал следующий интерфейс.
github.com/knockdata/zeppelin-highcharts
Вот два варианта.Какой вариант лучше?
Вариант АЭто пример для построения высоких графиков.
highcharts(bank,
"marital",
List("name" -> "age", "y" -> avg(col("balance")), "orderBy" -> col("age")),
new Title("Marital Job Average Balance").x(-20),
new Subtitle("Source: Zeppelin Tutorial").x(-20),
new XAxis("Age").typ("category"),
new YAxis("Balance(¥)").plotLines(Map("value"->0, "width"->1)),
new Tooltip().valueSuffix("¥"),
new Legend().layout("vertical").align("right").verticalAlign("middle")
)
Вот код без дополнительной опции.
highcharts(bank,
"marital",
List("name" -> "age",
"y" -> avg(col("balance")),
"orderBy" -> col("age")))
Вариант БЯ придумал этот вариант с вдохновением от ответа @ honnix. У него больше синтаксического сахара.
highcharts(bank).series("marital")
.data("name" -> "age", "y" -> avg(col("balance")))
.orderBy(col("age"))
.title(Title("Marital Job Average Balance").x(-20))
.subtitle(Subtitle("Source: Zeppelin Tutorial").x(-20))
.xAxis(XAxis("Age").typ("category"))
.yAxis(YAxis("Balance(¥)").plotLines("value"->0, "width"->1))
.tooltip(Tooltip().valueSuffix("¥"))
.legend(Legend().layout("vertical").align("right").verticalAlign("middle"))
.plot
Простой сюжет без опций будет
highcharts(bank).series("marital")
.data("name" -> "age", "y" -> avg(col("balance")))
.orderBy(col("age"))
.plot
Здесь будет сгенерирован график.