Python PySpark-连接到s3-将文件读取到rdd
我正在尝试使用pyspark连接到我的s3存储桶。Python PySpark-连接到s3-将文件读取到rdd,python,apache-spark,amazon-s3,pyspark,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()
代码如下:
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
…它接受不同的格式类。我试过使用hadoopFile,但它抛出“调用z:org.apache.spark.api.python.PythonRDD.hadoopFile时出错:java.io.IOException:scheme:s3n没有文件系统“这是Hadoop模块化的一个已知问题->您需要包含适当的文件和设置,以使其在Spark中工作……它不再是内置的