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

spark load a s3a file as a df, which command to run?

我有一个有效的 json 文件:

我在本地spark机器上导入成功

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

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

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

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

现在我正在尝试从 s3a link(它包含与 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 link。所以它不在我的 AWS 账户上。我假设我仍然可以从 link 导入数据,即使我不知道任何 accesskey 或 secretkey...

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

谢谢