2016-11-30 10 views
4

ユースケースは、データフレームをオブジェクトとして返してサービスを休止させたいと思っています。 レストサービスには、スパークコンテキストコントロールがありません。 registerAsTemptableでの実行方法など、ANSIクエリを実行できる方法はありますか。
私はテーブル名とクエリをrestサービスから渡します。それから私は、見える表として示すことができるオブジェクトとして何かを返すべきです。サービスとしてsparkを使用することはできますか?

他の方法がある場合は、同様にそれを提案してください。しかし、私は基本フレームワークとしてsparkを使いたいと思っていました。

+1

[Webアプリケーション経由でSparkアプリケーションを起動するためのベストプラクティス](http://stackoverflow.com/questions/40300222/best-practice-to-launch-spark-applications-via-web-application) –

答えて

3

いいえ、DataFrame to Restサービスを返すことはできません。 Sparkのコンテキスト外では動作しません。

スパークすることができます、しかし、何もアウトオブボックスサービスサポート

を持っていない:

  1. スタートJDBC Spark Serverと、このサーバへのクエリ。 Hereは、このサーバーに接続するためのチュートリアルです。それはではなく、 RESTサービスです。それは単なるJDBCサーバーです。あなたはあなたのRESTサービスからそれに接続することができますが(RESTの方法ではなく、データソースとして使用するだけです)、データソースとして使用してください
  2. Livyにジョブを送信してくださいサーバー - サービスがLarkを呼び出してSparkでジョブを実行することがあります。
  3. Spark REST APIにジョブを送信 - あなたのサービスには、Sparkに、いくつかのジョブを実行するリウィウスを呼び出すことができますが、この場合、ジョブファイルは、どちらも2番目と3番目のオプションが用意ジョブコードを必要

クラスタ内のJARファイル内になければなりません。 RESTサービスでは、/get/table/row=1というクエリで呼び出すことができます。適切な計算でジョブを送信する独自​​のサービスを準備する必要があります。

結論: いいえ、Sparkには、データを照会するためのRESTサービスが組み込まれていません。ただし、事前定義されたジョブをRESTスタイルで実行し、データを照会するオプションがあります。ただし、これには独自のサービスを構築する必要があります。事前定義されたジョブで適切なSpark APIをクエリする必要があります。

SQLクエリを実行するだけの場合は、サービスのデータソースとしてJDBC Spark Serverを使用することを検討してください。

関連する問題