私は、リアルタイムグラフをプロットするためにゼップリンを使用しようとしています。私は毎分つぶやきについて感情分析をしています。私は静的にクエリを行い、グラフをプロットすることができます。しかし、私はこれが動的に行われることを望みます。私は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.3のサポートSpark Structured Streaming以来の0.6
の答えをありがとうございました。 しかし、私が使っているスパークのバージョンは1.6で、ツェッペリンは0.6.0です。 あなたの答えはこれらのバージョンに当てはまりますか?もしそうでなければ、そのときのアプローチは何か。 – Agnirudra
Spark 1.6の場合、通常のDataFrameを使用してプロットをトリガする変更を監視する必要があります –
質問の更新を角度段落に追加しました。しかし、次のエラーが返され続けます。 'vendor.js:29 jQuery.Deferred exception:未定義の' $ watch 'プロパティを読み取ることができません。TypeError:未定義の' $ watch ' – Agnirudra