我正在尝试使用zeppelin绘制实时图形。我对每分钟的推文进行情绪分析。我可以静态查询并绘制图表。但我希望这是动态完成的。我是zeppelin的新手,对angularJS知之甚少。什么应该是解决这个问题的正确方法?如何在齐柏林飞艇上绘制实时图形?
val final_score=uni_join.map{case((year,month,day,hour,minutes),(tweet_count,sentiment))=>(year, month, day, hour, minutes(sentiment/tweet_count).ceil)}
final_score.saveToCassandra("twitter", "score",writeConf = WriteConf(ttl = TTLOption.constant(1000)))
final_score.foreachRDD(score => {
val rowRDD =score.map{case(year,month,day,hour,minutes,sentiment) =>(year,month,day,hour,minutes,sentiment) }
val tempDF = sqlContext.createDataFrame(rowRDD)
z.angularBindGlobal("stream", parsed) //to bind parsed to stream.
tempDF.registerTempTable("realTimeTable")
})
对上表做一个查询,我能够得到图。但我想每分钟动态更新一次图表,以便与情绪分数保持同步。 感谢之前。 [更新]为飞艇笔记本角部分如下:
%angular
<div id="graph" style="height: 100%; width: 100%">
<canvas id="myChart" width="400" height="400"></canvas>
<div id="legendDiv"></div>
</div>
<script>
function initMap() {
var colorList = ["#fde577", "#ff6c40", "#c72a40", "#520833", "#a88399"]
var el = angular.element($('#stream'));
console.log("El is "+el) //returns el as object
angular.element(el).ready(function() {
console.log('Hello')
window.locationWatcher =el.$scope.$watch('stream', function(new, old){
console.log('changed');}, true)})
</script>
但运行此代码保持返回下面的错误。
vendor.js:29 jQuery.Deferred exception: Cannot read property '$watch' of undefined TypeError: Cannot read property '$watch' of undefined
,我使用的火花版本是1.6 而飞艇是0.6
非常感谢您的回答。 但我使用的spark版本是1.6,zeppelin是0.6.0。 你的回答对这些版本是否适用?如果不是,那么应该采取什么方法。 – Agnirudra
对于Spark 1.6,它需要使用正常的DataFrame和一些代码来监视触发剧情的变化 –
我已经将问题的更新添加到了角色段落。但它一直返回以下错误 'vendor.js:29 jQuery.Deferred异常:无法读取未定义的属性'$ watch'TypeError:无法读取未定义的'$ watch'属性' – Agnirudra