我有一个有效的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,我仍然可以从该链接导入数据......答案 0 :(得分:0)
最后我可以解决这个问题。通过添加正确的.jar文件(请参阅下面的评论)并在spark-env.sh中设置AWS_ACCESS_KEY_ID = AWS_SECRET_ACCESS_KEY,该文件位于我的spark文件夹的conf文件夹中。
由于