正在尝试使用 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
我已经检查了很多线程,但在我的情况下似乎没有任何效果。
非常感谢任何有关如何处理此问题的建议。
textFile
仅采用路径和 minPartitions
(可选),我认为您正在寻找的是 hadoopFile
...这确实需要不同的格式类。
我是一名优秀的程序员,十分优秀!