2016-06-19 3 views
1

pyspark를 사용하여 s3 버킷에 연결하려고합니다. 1.6 & 하둡 스파크,PySpark - s3에 연결 - rdd에 파일 읽기

"s3n" not recognized 

사용하고 :

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

가 이전에이 같은 것을 던져 사용 :

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() 

그것은 말하는 예외가 발생합니다 :
아래 코드입니다 2.6

그래서 많은 스레드를 확인했지만 내 경우에는 아무것도 작동하지 않는 것 같습니다.

이 문제를 해결하는 방법에 대한 제안은 매우 감사하겠습니다.

답변

1

textFile은 경로를 취하고 minPartitions (선택 사항)입니다. 내가 찾고있는 것은 hadoopFile ... 다른 Format 클래스를 사용합니다.

+0

hadoopFile을 사용하여 시도했지만 "z : org.apache.spark.api.python.PythonRDD.hadoopFile을 호출하는 동안 오류가 발생했습니다 .: java.io.IOException : No FileSystem for scheme : s3n" –

+1

그건 Hadoop 모듈화에서 알려진 문제입니다. -> https://issues.apache.org/jira/browse/SPARK-7442 Spark에서 제대로 작동하려면 적절한 파일과 설정을 포함해야합니다. 더 이상 내장되어있다. –