spark将s3a文件加载为df,哪个命令运行?

时间:2017-07-31 02:37:54

标签: python apache-spark amazon-s3 spark-submit

我有一个有效的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账户上。我假设即使我不知道任何accesskey或secretkey,我仍然可以从该链接导入数据......

1 个答案:

答案 0 :(得分:0)

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

由于