我想在Zeppelin中以直方图的形式显示我的结果。我偶然发现了。我的代码是scala,我想知道使用scala将情节合并到zeppelin中的步骤。或者有没有更好的方法(库)可用于在Zeppelin(Scala)中绘制直方图?
答案 0 :(得分:2)
如果您有一个名为plotTemp的数据框,其列为“id”,“degree”,那么您可以执行以下操作:
activeParent.children[ 1 ].innerHTML = editedContent
然后在新窗口中切换到SQL解释器
plotTemp.registerTempTable("plotTemp")
然后,您可以点击条形图图标,您应该看到您要找的内容
答案 1 :(得分:0)
我刚刚发布了spark-highcharts。使用以下代码,您可以创建直方图。
import com.knockdata.spark.highcharts._
import com.knockdata.spark.highcharts.model._
highcharts(bank
.series("x" -> "age", "y" -> count("*"))
.orderBy(col("age"))
)
.chart(Chart.column)
.plotOptions(new plotOptions.Column().groupPadding(0).pointPadding(0).borderWidth(0))
.plot()
答案 2 :(得分:0)
尝试了所有可用的解决方案后,我最终选择了vegas-viz。如果您在GitHub上查看他们的项目页面,他们就会声称是“ Scala + Spark缺少的MatPlotLib ”。尽管此刻听起来有点夸张,但图书馆的工作做得很好。
这是我建议在Zeppelin的Spark解释器中绘制条形图(基本上就是直方图所需的过程)的步骤:
导入依赖项(请检查vegas maven repository以获取最新版本)
%dep
z.load("org.vegas-viz:vegas_2.11:0.3.11")
z.load("org.vegas-viz:vegas-spark_2.11:0.3.11")
请注意,仅当您要直接从DataFrame绘制时,才需要vegas-spark。
导入程序包
import vegas._
import vegas.render.WindowRenderer._
绘制图表
val plot = Vegas("Sample Column Chart")
.withData(
Seq(
Map("country" -> "USA", "population" -> 314),
Map("country" -> "UK", "population" -> 64),
Map("country" -> "DK", "population" -> 80)
)
)
.encodeX("country", Nom)
.encodeY("population", Quant)
.mark(Bar)
plot.show
结果应类似于下图:
如果您已经在依赖项之间添加了vegas-spark(请参见第1点),则甚至可以直接从DataFrame绘制图像(但请参见第1点)。
import vegas.sparkExt._
val df = Seq(
("USA", 314),
("UK", 64),
("DK", 80)
).toDF("country", "population")
val plot = Vegas("Sample Column Chart", width=600, height=320)
.withDataFrame(df)
.encodeX("country", Nom)
.encodeY("population", Quant)
.mark(Bar)
plot.show
结果应与上面相同。
答案 3 :(得分:0)