2016-06-19 12 views
1

pysparkを使用してs3バケットに接続しようとしています。以下
はコードです: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() 

それは言って例外をスロー:1.6 & Hadoopのスパーク、使用して

"s3n" not recognized 

アム:

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

は、以前はそれが何かを投げるために使用されます2.6

私はSOの多くのスレッドをチェックしましたが、私の場合は何も動作していないようです。

これに対処する方法についてのご意見は大変ありがとうございます。

答えて

1

textFileは、パスをとるだけで、minPartitions(オプション)です。あなたが探しているのは、hadoopFile ...さまざまなFormatクラスを取ります。

+0

hadoopFileを使用しようとしましたが、「z:org.apache.spark.api.python.PythonRDD.hadoopFileを呼び出しているときにエラーが発生しました。 :java.io.IOException:Scheme:s3nのFileSystemがありません」 –

+1

これはHadoopモジュール化の既知の問題です - > https://issues.apache.org/jira/browse/SPARK-7442これをSparkで動作させるには、適切なファイルと設定を含める必要があります。それ以上に造られた –