【发布时间】:2019-10-11 11:57:01
【问题描述】:
我想将 s3 存储桶 myBucketName 上的文件夹 poc/folderName 中的一些镶木地板文件读取到 pyspark 数据帧。我正在使用 pyspark v2.4.3。
下面是我正在使用的代码
sc = SparkContext.getOrCreate()
sc._jsc.hadoopConfiguration().set("fs.s3.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
sc._jsc.hadoopConfiguration().set("fs.s3a.awsAccessKeyId", 'id')
sc._jsc.hadoopConfiguration().set("fs.s3a.awsSecretAccessKey", 'sid')
sqlContext = SQLContext(sc)
parquetDF = sqlContext.read.parquet("s3a://myBucketName/poc/folderName")
我已经使用命令 pyspark --packages org.apache.hadoop:hadoop-aws:3.3.0 下载了 hadoop-aws 包,但是当我在上面运行代码时收到以下错误。
An error occurred while calling o825.parquet.
: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2654)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
我在这里做错了什么? 我在 Windows 10 上使用 Anaconda 和 spyder 运行 python 代码
【问题讨论】:
标签: python amazon-web-services hadoop amazon-s3 pyspark