2017-07-31 6 views
2

私が有効であるJSONファイルがあります:私は成功し、私はこれまでの仕事sparkはd3としてs3aファイルをロードしますが、実行するコマンドは?

/home/me/spark/bin/spark-submit \ 
--master local[*] Code.py 

を提出するシェルスクリプトを持っているローカルスパークマシン上

DF = sqlContext.read.json("/home/me/myfile.json") 

をインポートすることができ

をとても良い、例えばDF.show(1)はうまく動作します。

ここでは、myfile.jsonと同じデータを含むs3aリンクからロードしようとしています。私は

DF = sqlContext.read.json("s3a://some-bucket/myfile.json") 

私はまだ同じコマンドが含まれている私のシェルスクリプトを実行するを試してみました

、すなわち

/home/me/spark/bin/spark-submit \ 
--master local[*] Code.py 

しかし、それは動作しません。この時間は、私は次のエラーを取得する

java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found 

私のシェルスクリプトは間違っていますか?

PS:私はちょうど他の人からs3aリンクを取得しました。だから私のAWSアカウントにはない。アクセスキーや秘密キーがわからなくても、そのリンクからデータをインポートできるとします。

+0

これは 'ClassNotFoundException'です。依存関係をチェックしましたか? –

+0

いいえ、どうすればいいですか? – S12000

+0

/spar/jarsファイル内にhaddop-aws-2.7.3.jarとaws-java-sdk-1.7.4.jarの両方を追加して依存関係を修正しました。それでも、次のエラーが表示されます:チェーン内の任意のプロバイダからAWS資格情報を読み込むことができません – S12000

答えて

0

最後に問題を解決できました。私のsparkフォルダのconfフォルダにあるspark-env.shの中に、適切な.jarファイル(下記の私のコメントを参照)を追加し、AWS_ACCESS_KEY_ID = AWS_SECRET_ACCESS_KEYを設定します。

ありがとうございました

関連する問題