問題タブ [pyspark]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonシェルでpysparkをインポートする
これは、別のフォーラムでの他の人の質問のコピーであり、回答がなかったので、同じ問題を抱えているので、ここで再質問すると思いました. ( http://geekple.com/blogs/feeds/Xgzu7/posts/351703064084736を参照)
マシンに Spark が正しくインストールされており、Python インタープリターとして ./bin/pyspark を使用すると、エラーなしで pyspark モジュールを使用して Python プログラムを実行できます。
ただし、通常の Python シェルを実行しようとすると、pyspark モジュールをインポートしようとすると、次のエラーが発生します。
そしてそれは言います
どうすればこれを修正できますか? Python を pyspark ヘッダー/ライブラリ/などにポイントするために設定する必要がある環境変数はありますか? Spark インストールが /spark/ の場合、どの pyspark パスを含める必要がありますか? または、pyspark プログラムは pyspark インタープリターからのみ実行できますか?
python - PySpark ドロップ行
PySparkでRDDから行を削除するにはどうすればよいですか? 特に最初の行は、データセットに列名が含まれる傾向があるためです。API を熟読しても、これを行う簡単な方法が見つからないようです。もちろん、Bash / HDFS 経由でこれを行うこともできますが、PySpark 内からこれを行うことができるかどうかを知りたいだけです。
python - Spark で INFO ログをオフにする方法は?
AWS EC2 ガイドを使用して Spark をインストールしました。bin/pyspark
スクリプトを使用してプログラムを正常に起動し、spark プロンプトに到達し、クイック スタート クイックも正常に実行できました。
INFO
ただし、各コマンドの後にすべての詳細ログを停止する方法を理解することはできません。
以下のコード (コメントアウト、OFF に設定) でほぼすべての可能なシナリオを試しましたが、アプリケーションを起動log4j.properties
するフォルダー内のファイル内conf
と各ノードで何も実行していません。各ステートメントを実行した後でも、ロギングINFO
ステートメントが出力されます。
これがどのように機能するはずなのか、私は非常に混乱しています。
を使用するときの完全なクラスパスは次のSPARK_PRINT_LAUNCH_COMMAND
とおりです。
Spark コマンド: /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java -cp :/root/spark-1.0.1-bin-hadoop2/conf:/root/spark-1.0.1 -bin-hadoop2/conf:/root/spark-1.0.1-bin-hadoop2/lib/spark-assembly-1.0.1-hadoop2.2.0.jar:/root/spark-1.0.1-bin-hadoop2/lib /datanucleus-api-jdo-3.2.1.jar:/root/spark-1.0.1-bin-hadoop2/lib/datanucleus-core-3.2.2.jar:/root/spark-1.0.1-bin-hadoop2 /lib/datanucleus-rdbms-3.2.1.jar -XX:MaxPermSize=128m -Djava.library.path= -Xms512m -Xmx512m org.apache.spark.deploy.SparkSubmit spark-shell --class org.apache.spark. repl.Main
の内容spark-env.sh
:
python - Spark で単純な 1 行の文字列を RDD に変換する
私は簡単な行を持っています:
要素が1つだけのRDDに変換したいと思います。私が試してみました
しかし、次のようになります。
何か案は?
apache-spark - Apache Spark でデータを集計する方法
3 つのノードに分散システムがあり、データはそれらのノード間で分散されています。たとえば、test.csv
3 つのノードすべてに存在するファイルがあり、4 つの列が含まれています。
上記の結果セットを集計してみたいと思います。id
、c1
、c2
、およびc3
列ごとにデータセットを集計して、このように出力するにはどうすればよいですか?
私は次のことを試しました:
apache-spark - マップ MissingCorpusError で使用される NLTK からの PySpark textblob
PySpark でテキスト前処理の関数を実装しようとしています。ブートストラップ スクリプトから Python の依存関係をインストールする Amazon EMR があります。これらの依存関係の 1 つは textblob "python -m textblob.download_corpora" です。次に、問題なくすべてのマシンでローカルに使用しようとしています。
しかし、Spark から実行しようとすると、次のエラーが発生します。
同じユーザーで Spark スクリプトと単一ノード スクリプトの両方を実行しようとしています。何が間違っている可能性があるのか 誰かが考えていますか?
python - spark-submit と pyspark の違いは何ですか?
pyspark を起動してから次のコマンドを実行すると:
すべて問題ありません。ただし、コマンドラインと spark-submit を使用して同じことを実行しようとすると、エラーが発生します。
私のスクリプト:
なぜこうなった?この相違を引き起こす pyspark の実行と spark-submit の実行の違いは何ですか? そして、どうすればこれをspark-submitで機能させることができますか?
編集:これを実行してbashシェルから実行しようとしましたpyspark my_script.py collapse ./data/
が、同じエラーが発生しました。すべてが機能するのは、Python シェルでスクリプトをインポートしたときだけです。
python - ローカル関数からの PySpark ブロードキャスト変数
Python メソッド内からブロードキャスト変数を作成しようとしています (分散操作に依存する、作成中のいくつかのユーティリティ メソッドを抽象化しようとしています)。ただし、Spark ワーカー内からブロードキャスト変数にアクセスできないようです。
この設定があるとしましょう:
ただし、代わりに仲介者を排除すると、SomeMethod()
うまく機能します。
可能であれば、すべての Spark ロジックをメイン メソッドに配置する必要はありません。ローカル関数内から変数をブロードキャストし、それらを Spark ワーカーにグローバルに表示する方法はありますか?
別の方法として、この種の状況に適した設計パターンは何でしょうか?たとえば、自己完結型で、再利用したい特定の機能を実行する Spark 専用のメソッドを作成したいですか?
amazon-ec2 - クラスター内のすべての Spark ノードを完全に活用するにはどうすればよいですか?
Spark のスタンドアロン モードで ec2-script を使用して 10 ノードのクラスターを起動しました。PySpark シェル内から s3 バケットのデータにアクセスしていますが、RDD で変換を実行すると、1 つのノードしか使用されません。たとえば、以下は CommonCorpus からデータを読み込みます。
これを実行すると、10 個のスレーブのうち 1 つだけがデータを処理します。これは、1 つのスレーブ (213) だけが、Spark Web コンソールから表示したときにアクティビティのログを持っているためです。Ganglia でアクティビティを表示すると、この同じノード (213) が、アクティビティの実行時にメモリ使用量が急増した唯一のスレーブです。
さらに、スレーブが 1 つだけの ec2 クラスターで同じスクリプトを実行すると、まったく同じパフォーマンスが得られます。私は Spark 1.1.0 を使用しています。ヘルプやアドバイスをいただければ幸いです。
python - PySpark で使用するサードパーティの Java JAR ファイルを追加する方法
Java のサードパーティ データベース クライアント ライブラリがいくつかあります。私はそれらにアクセスしたい
例: クライアント クラス (JDBC ドライバーではありません!) を Java ゲートウェイ経由で Python クライアントが利用できるようにするには:
サードパーティのライブラリを JVM クラスパスに追加する場所が明確ではありません。ファイルcompute-classpath.shに追加しようとしましたが、うまくいかなかったようです。私は得る:
Py4jError: パッケージを呼び出そうとしています
また、Hive と比較すると、ハイブ JAR ファイルはファイルcompute-classpath.shを介してロードされないため、疑わしいと思います。JVM 側のクラスパスをセットアップするための別のメカニズムが発生しているようです。