Pyspark - 从第3页读取zip文件到RDD

时间:2016-06-06 04:35:07

标签: python apache-spark amazon-s3 pyspark rdd

我试图从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。

提前致谢

0 个答案:

没有答案