我正在运行EMR实例,突然工作正常,当我尝试从python spark脚本访问s3文件时,它开始出现以下错误:
py4j.protocol.Py4JJavaError: An error occurred while calling o36.json.
:java.lang.RuntimeException:java.lang.ClassNotFoundException:未找到类org.apache.hadoop.fs.s3a.S3AFileSystem
我们如何解决这个问题?
谢谢。
答案 0 :(得分:0)
对于Amazon EMR,请使用“ s3:”前缀。 S3A连接器是ASF的开源软件之一;亚马逊拥有自己的(封闭源)连接器,这是他们唯一支持的连接器
答案 1 :(得分:0)
这是spark依赖项的问题。我必须在park-defaults.conf中添加jars配置。
spark.jars.packages com.amazonaws:aws-java-sdk:1.7.4,org.apache.hadoop:hadoop-aws:2.7.2
请点击以下链接: https://gist.github.com/eddies/f37d696567f15b33029277ee9084c4a0