2016-11-06 4 views
1

Sparkの既存のインスタンスにフックして既存のRDDで操作する小さなPythonスクリプトを取得するにはどうすればよいですか?セッションを開始してRDDを維持するPythonを接続する方法

私はWindowsのSparkを使って作業していて、 "ローカル"インスタンスのスクリプトを試しています。私はSpark(Spark 2.0.1 for Hadoop 2.7)の最新安定版ビルで作業しています。私は、Hadoop 2.7.3の環境変数をインストールして設定しました。私はPysparkシェルとVisual Studio 2015 Community with Pythonを試しています。

大規模なエンジンを構築しようとしていますが、ロード、マッサージ、フォーマット、およびデータへのアクセスに個別のスクリプトを実行します。私はそれを行うための通常の方法があると確信しています。スパークのポイントではない?

とにかく、これまでの経験はこれです。これは一般的に予想される。小さなSparkスクリプトをPythonでビルドしてVisual Studioを使って実行すると、スクリプトは実行され、その仕事をして終了します。終了時には、使用していたSpark Contextも終了します。

私はPysparkで永続的なSpark Contextを開始し、SparkConfとSparkContextを各Pythonスクリプトに設定してそのSpark Contextに接続するとどうなりますか?そこで、Pysparkのデフォルト設定をオンラインで調べると、次のように試しました。

conf = SparkConf().setMaster("local[*]").setAppName("PySparkShell") 
sc = SparkContext(conf = conf) 

私はPysparkを開始しました。 Visual Studioの別のスクリプトでは、このコードをSparkContextに使用しました。 RDDFromFilenameという名前のRDDにテキストファイルをロードしました。しかし、スクリプトが実行された後は、PysparkシェルのRDDにアクセスできませんでした。

永続的なSpark Contextを起動し、そこに1つのPythonスクリプトでRDDを作成し、後続のPythonスクリプトからそのRDDにアクセスするにはどうすればよいですか?特にWindowsでは?

答えて

1

Sparkには解決策がありません。

  • 火花ジョブサーバ
  • リウィウス:
  • 永続共有コンテキストを維持するためにのIgniteを

    私はこれらのみツェッペリンのうち、正式にWindowsをサポートしていることと思います。

  • +0

    Spark-Submitを実行する代わりに、Pysparkシェルを起動してコードと応答のチャンクを入れたり出したりする方法がありますが、重いI/Oをマスターのファイルシステム。 –

    +0

    他のスクリプトがI/O通信を事前定義し、すべての機能がリクエストに応答する新しいスレッドを起動する「マスター」スクリプトに存在するようにシステムを設計することもできます。基本的には、私は、UIへの回答を提供する途中でスパークが深刻な状態で、進行中のメモリ内データベースを構築することに興味があります。しかし、必ずしもフル機能のSQLであるとは限りません。 –

    0

    次の人のために:私は最近、SnappyDataを発見しました。

    SnappyDataはまだ若く、学習曲線は少しありますが、複数のSparkジョブ間で共有でき、RDDやDataFramesとしてネイティブにアクセスできる永続的な可変SQLコレクションを作成することが約束されています。これには、並行ジョブをダンプできるジョブサーバーがあります。

    これは本質的には、同じJVM内でローカルなSparkクラスタとGemFireのメモリ内データベースを組み合わせたものであるため、(私がそれを管理する上でうまくいくと)単一マシンのボトルネックがなくても他のSparkプログラムが同じデータ上で実行されている間にライブデータ操作を行うことさえできます。

    これは私自身の答えですが、と答えてもらえません。問題がどれくらいうまく解決されるかについて十分に洗練されています。

    関連する問題