Zeppelin的图表选项非常基本。所以我正在寻找一个如何使用ds3.js做一些简单的事情的例子,比如条形图。据我所知,这将是用于创建令人惊叹的图形的最佳图形库。
无论如何,我的问题是如何将数据传递给JavaScript代码。使用常规的Zeppelin图表,您可以编写scala或其他代码,然后将其保存在数据框中。然后在下一行使用%sql选项,您可以编写一个SQL命令,然后出现按钮,让您绘制数据图。
但我发现在互联网上看到的并不表示scala代码部分中创建的数据会传递到放置ds3.js代码的Angular部分。
我发现的一些例子就像这样一个例子,其中所有的html和Javascript都放在scala代码中的一个巨大的print语句中https://rawkintrevo.org/2016/09/20/gelly-on-apache-flink/
然后有一个像Using d3.js with Apache Zeppelin这样的例子,其中Zeppelin行都是JavaScript,但数据只是一个本地创建的数组。
所以我需要(1)一个例子和(2)对RDD如何将广告数据帧传递到JavaScript代码的一些理解,当然这与scala代码在不同的行上。如何将笔记本的scala部分中的对象放入Javascript部分的范围。
答案 0 :(得分:0)
您可以参考zeppelin docs获取有关创建自定义可视化的良好入门指南。另外,您可能需要查看the code of some of the built-ins viz。
关于如何将来自DataFrames的数据传递给js,我非常确定z.show
或%sql
触发dataFrame.take(${zeppelin.spark.maxResult})
收集 RDD[T]
作为驱动程序的Seq[T]
对象,其元素随后用于呈现图形。
或者,如果您在另一个段落中定义了javascript图表,则还可以使用z.angularBind("values", rdd.take(maxResult))
将数据发送到角度视图。关于这个问题有一个非常好的答案here可能会有所帮助。
希望您觉得这很有帮助。