Есть ли лучший интерфейс для добавления поддержки 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

Здесь будет сгенерирован график.

Ответы на вопрос(1)

Ваш ответ на вопрос