2

我有一个有效的 json 文件:

我可以在本地火花机上成功导入

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

我有一个 shell 脚本来提交作业

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

到目前为止一切顺利,例如 DF.show(1) 工作正常。

现在我正在尝试从 s3a 链接加载(其中包含与 myfile.json 完全相同的数据)。

我试过了

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

我仍然运行包含相同命令的 shell 脚本,即

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

但是这次它不起作用,我收到以下错误

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

我的shell脚本错了吗?

PS:我刚从别人那里得到了 s3a 链接。所以它不在我的 AWS 账户上。我假设即使我不知道任何访问密钥或密钥,我仍然可以从该链接导入数据......

4

1 回答 1

0

最后我可以解决这个问题。通过添加正确的 .jar 文件(请参阅下面的评论)并在 spark-env.sh 中设置 AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY,该文件位于我的 spark 文件夹的 conf 文件夹中。

谢谢

于 2017-07-31T21:19:30.543 回答