Я пытаюсь подключиться к моему ведро s3 с помощью pyspark.
Ниже приведен код:PySpark - Подключиться к s3 - прочитать файл на rdd
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
Am использованием, Спарк 1.6 & Hadoop 2.6
Я проверил много потоков на SO, но ничего не работает в моем случае.
Любое предложение о том, как с этим бороться, очень ценится.
Я попытался использовать hasoopFile, но он выбрасывает «Произошла ошибка при вызове z: org.apache.spark.api.python.PythonRDD.hadoopFile. : java.io.IOException: No FileSystem для схемы: s3n" –
Это известная проблема с модульной модуляцией Hadoop -> https://issues.apache.org/jira/browse/SPARK-7442. Вам нужно включить соответствующие файлы и настройки, чтобы заставить это работать в Spark ... это просто не встроенный в –