PySpark - 连接到s3 - 将文件读取到rdd

时间:2016-06-19 06:49:47

标签: python apache-spark amazon-s3 pyspark

我试图使用pyspark连接到我的s3水桶 以下是代码:

from boto.s3.connection import S3Connection

AWS_KEY = '...'
AWS_SECRET = '...'

aws_connection = S3Connection(AWS_KEY, AWS_SECRET)
bucket = aws_connection.get_bucket('activitylogs-prod')

sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", AWS_KEY)
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", AWS_SECRET)

print len(list(bucket.list()))
for key in bucket.list():
    file_name = 's3n://myBucket/'+key.name
    print file_name
    rdd = sc.textFile(file_name 
        ,'org.apache.hadoop.mapred.TextInputFormat',
        'org.apache.hadoop.io.Text',
        'org.apache.hadoop.io.LongWritable'
        )
    print rdd.count()

它抛出一个例外说:

textFile() takes at most 4 arguments (5 given)  

以前它常常抛出类似的东西:

 "s3n" not recognized

使用,Spark 1.6& Hadoop 2.6

我已经检查了很多线程,但在我的情况下似乎没有任何工作。

非常感谢任何有关如何处理此问题的建议。

1 个答案:

答案 0 :(得分:1)

#__coupon_member_details123只接受路径textFile(可选),我认为你要找的是minPartitions ...它确实采用了不同的格式类。