2017-12-15 7 views
0

私はpyspark 1.6.2でpythonスクリプトファイルを実行します(認定トレーニングの理由から古いものです)。pyspark:Pythonスクリプトを実行してコマンドラインで結果を確認

spark-submit --master yarn-cluster s01.py 

実行すると、「application_somelongnumberのアプリケーションレポート」が返されます。私が期待していたことは、スクリプトコマンドの出力を示すことでした。私が正しく開発したかどうかを確認できるように。私が欲しいものを手に入れようとすれば、どうすればいいですか?

私のスクリプトの内容:

#!/usr/bin/python 

from pyspark.sql import Row 
from pyspark.sql.functions import * 
from pyspark import SparkContext 
sc = SparkContext(appName = "solution01") 

a = sc.textFile("/data/crime.csv") 
b = a.take(1) 
sc.stop() 
print(b) 

UPDATE :私はpysparkのs01.pyを実行すると、私は私の結果を参照してくださいが、私はそれがパラメータで実行されるようにしたいので、それは、意図した動作ではありませんクラスタ上で

答えて

1

1)プリントステートメントは糸モードでは機能しません。あなたはスパークドライバは、あなたが提出火花を実行し、そこからマシン上に作成される場合には、デバッグ、一方で糸クライアントモードの代わりに、糸クラスタを使用する必要があります)

myRDD.collect().foreach(println) 

2:代わりに、このようにするforeachを使用しますコマンド。

3)糸クラスターモードでsparkコマンドを実行しているとき。実行中にログはコンソール上に表示されません。アプリケーションIDで生成されたURLがあります。指定されたURLのログを確認することができます。

実行が完了すると別の方法として、コマンドを使用して、ローカルマシンにクラスタからログをダウンロードすることができます

yarn logs -applicationId <application> 
関連する問題