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では?
Spark-Submitを実行する代わりに、Pysparkシェルを起動してコードと応答のチャンクを入れたり出したりする方法がありますが、重いI/Oをマスターのファイルシステム。 –
他のスクリプトがI/O通信を事前定義し、すべての機能がリクエストに応答する新しいスレッドを起動する「マスター」スクリプトに存在するようにシステムを設計することもできます。基本的には、私は、UIへの回答を提供する途中でスパークが深刻な状態で、進行中のメモリ内データベースを構築することに興味があります。しかし、必ずしもフル機能のSQLであるとは限りません。 –