我试图从s3解压缩文件(.zip),
我尝试过以下方法
config_dict = {"fs.s3n.awsAccessKeyId":AWS_KEY,
"fs.s3n.awsSecretAccessKey":AWS_SECRET}
print filename
rdd = sc.hadoopFile(filename,
'org.apache.hadoop.mapred.TextInputFormat',
'org.apache.hadoop.io.Text',
'org.apache.hadoop.io.LongWritable',
conf=config_dict)
导致异常
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.hadoopFile.
: java.io.IOException: No FileSystem for scheme: s3n
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2612)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
at org.apache...
我也尝试使用 Boto
进行连接aws_connection = S3Connection(AWS_KEY, AWS_SECRET)
bucket = aws_connection.get_bucket('myBucket')
并使用GZIP解压缩:
ip = gzip.GzipFile(fileobj=(StringIO(key.get_contents_as_string())))
myrdd = sc.textfile(ip.read())
这不能给我预期的结果。
如果我从本地机器将相同的zip文件提供给我的火花程序,如下所示,正在正确读取内容
myrdd = sc.textfile(<my zipped file>)
有人可以让我知道如何从s3读取压缩文件到spark RDD。
提前致谢