如何将Zeppelin中的数据传递给DS3.js以进行Spark可视化

时间:2017-05-21 23:22:28

标签: scala apache-spark apache-zeppelin

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部分的范围。

1 个答案:

答案 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可能会有所帮助。

希望您觉得这很有帮助。