-2
ENV:スパーク1.6、ScalaのScalaとSparkで2つのプロセスを並列に実行するには?
こんにちは
は、私は、並列に処理するために実行する必要があります。最初のものはデータを受け取るためのもので、もう1つはHiveテーブルの変換と保存用です。私は1分間隔で最初のプロセスを繰り返し、2分間隔で2番目のプロセスを繰り返したい。
==========First Process=== executes once per minute=============
val DFService = hivecontext.read
.format("jdbc")
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
.option("url", "jdbc:sqlserver://xx.x.x.xx:xxxx;database=myDB")
.option("dbtable", "(select Service_ID,ServiceIdentifier from myTable) tmp")
.option("user", "userName")
.option("password", "myPassword")
.load()
DFService.registerTempTable("memTBLService")
DFService.write.mode("append").saveAsTable("hiveTable")
=============Second Process === executes once per 2 minute =========
var DF2 = hivecontext.sql("select * from hiveTable")
var data=DF2.select(DF2("Service_ID")).distinct
data.show()
この2つのプロセスをScalaでどのように並行して実行することができますか?
ありがとう Hossain
スパークコンテキストは、その後、どのように私は分以内に全体のタスクを完了することができ、開始するために、50以上の秒をとりますか、おじいちゃん? – Jhon
毎分SQL Serverからどのくらいのデータを読み込んでいますか?それが少量のデータであれば、通常の(スパークではない)JavaまたはScalaアプリケーションがうまくいくでしょう。 Sparkの起動時間に関しては、可能な限り、このタイプの作業にはSparkを避けることをおすすめします。短い実行時間を考えると、これらは比較的小さい書き込みであると推測します(SQL Serverからの読み取り、ネットワーク経由の転送、ディスクへの書き込みは1分未満です) –
あなたの提案は、このタイプの問題。しかし、私はすでにスカラーコーディングを行っています。私はScala Futureがこの種の問題の解決策になると思います。私は決して未来を試したことはありません。私の問題に関連するいくつかの例があれば、私のために投稿してください。 – Jhon