使用scala将s3中的数据读取到sparkDataframe中

uemypmqf  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(438)

我正在尝试将“s3://fakepath/subakepath/sub-fakepath/*.gz”中的数据读入在本地计算机上运行的spark。我在scala代码中指定fs.s3a.access.key”和“fs.s3a.secret.key”,使用

SqlContext.read()

我的类路径中还有hadoop-aws-2.7.1.jar。我得到的错误是
java.util.serviceconfigurationerror:org.apache.hadoop.fs.filesystem:provider org.apache.hadoop.fs.s3a.s3afilesystem无法示例化
关于这个问题,我已经看了stackoverflow的答案,但这似乎并不能解决我的问题。如果有人能给我指出我丢失的那一块,或是我没有找到的那一块,我将不胜感激。

v9tzhpje

v9tzhpje1#

如果您使用amazonemr服务,就不会遇到这个问题,因为所有jar都会被适当地添加到路径中。
如果s3a、s3n、s3文件系统无法示例化,则是因为aws sdk JAR不在路径中。
平均几个小时的调查对我来说是有效的,
./spark shell--master yarn client--jars/usr/hdp/2.4.0.0-169/hadoop/hadoop-aws-2.7.1.2.4.0.0-169.jar,/usr/hdp/2.4.0.0-169/hadoop/hadoop auth.jar,/usr/hdp/2.4.0.0-169/hadoop/aws-java-sdk-1.10.65.jar--驱动程序内存512m--执行程序内存512m
希望有帮助。

相关问题