Python 使用pySpark连接Amazon s3时出现问题

Python 使用pySpark连接Amazon s3时出现问题,python,amazon-web-services,amazon-s3,pyspark,Python,Amazon Web Services,Amazon S3,Pyspark,我使用的是Spark 1.6版本的本地模式。以下是我的代码: 第一次尝试: airline = sc.textFile("s3n://mortar-example-data/airline-data") airline.take(2) 第二次尝试: airline = sc.textFile("s3n://myid:mykey@mortar-example-data/airline-data") airline.take(2) 上述代码向我抛出以下错误: Py4JJavaError: An

我使用的是Spark 1.6版本的本地模式。以下是我的代码:

第一次尝试:

airline = sc.textFile("s3n://mortar-example-data/airline-data")
airline.take(2)
第二次尝试:

airline = sc.textFile("s3n://myid:mykey@mortar-example-data/airline-data")
airline.take(2)
上述代码向我抛出以下错误:

Py4JJavaError: An error occurred while calling o17.partitions.
: java.io.IOException: No FileSystem for scheme: s3n
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
不确定这里缺少什么连接到S3。如果有人能指给我看,那就太好了

以下是我的解决方案

bucket = "your bucket"

# Prod App Key
prefix = "Your path to the file"
filename = "s3n://{}/{}".format(bucket, prefix)
sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", "YourAccessKey")
sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", "YourSecret key") 

rdd = sc.hadoopFile(filename,
                    'org.apache.hadoop.mapred.TextInputFormat',
                    'org.apache.hadoop.io.Text',
                    'org.apache.hadoop.io.LongWritable',
                    )
rdd.count()

上面的代码对我有用。。。祝你好运。

可能是被愚弄,而不是被愚弄@Dutta你找到原因了吗?