Pyspark-sparkcontext
PySpark-SparkContext
SparkContextは、spark機能へのエントリポイントです。 Sparkアプリケーションを実行すると、ドライバープログラムが起動します。これにはメイン関数があり、ここでSparkContextが開始されます。 次に、ドライバープログラムは、ワーカーノードのエグゼキューター内で操作を実行します。
SparkContextはPy4Jを使用して JVM を起動し、 JavaSparkContext を作成します。 デフォルトでは、PySparkは 'sc' としてSparkContextを使用できるため、新しいSparkContextの作成は機能しません。
次のコードブロックには、PySparkクラスとSparkContextが取得できるパラメーターの詳細が含まれています。
パラメーター
以下は、SparkContextのパラメーターです。
- マスター-接続先のクラスターのURLです。
- appName -ジョブの名前。
- sparkHome -Sparkインストールディレクトリ。
- pyFiles -クラスターに送信してPYTHONPATHに追加する.zipまたは.pyファイル。
- 環境-ワーカーノードの環境変数。
- batchSize -単一のJavaオブジェクトとして表されるPythonオブジェクトの数。 バッチ処理を無効にする場合は1、オブジェクトサイズに基づいてバッチサイズを自動的に選択する場合は0、無制限のバッチサイズを使用する場合は-1を設定します。
- Serializer -RDDシリアライザー。
- Conf -すべてのSparkプロパティを設定するためのL \ {SparkConf}のオブジェクト。
- ゲートウェイ-既存のゲートウェイとJVMを使用します。それ以外の場合は、新しいJVMを初期化します。
- JSC -JavaSparkContextインスタンス。
- profiler_cls -プロファイリングに使用されるカスタムプロファイラーのクラス(デフォルトはpyspark.profiler.BasicProfilerです)。
上記のパラメーターの中で、 master および appname が主に使用されます。 PySparkプログラムの最初の2行は、次のようになります-
SparkContextの例– PySparkシェル
SparkContextについて十分に理解したので、PySparkシェルで簡単な例を実行してみましょう。 この例では、 README.md ファイル内の文字「a」または「b」の行数をカウントします。 したがって、ファイルに5行があり、3行に文字 'a’がある場合、出力は→ Line with a:3 になります。 同じことが文字「b」についても行われます。
注-次の例では、PySparkシェルの起動時にSparkがscという名前のSparkContextオブジェクトを自動的に作成するため、SparkContextオブジェクトは作成しません。 別のSparkContextオブジェクトを作成しようとすると、次のエラーが発生します-「ValueError:複数のSparkContextsを一度に実行できません」。
SparkContextの例-Pythonプログラム
Pythonプログラムを使用して同じ例を実行してみましょう。 firstapp.py というPythonファイルを作成し、そのファイルに次のコードを入力します。
次に、ターミナルで次のコマンドを実行して、このPythonファイルを実行します。 上記と同じ出力が得られます。