【发布时间】:2017-01-09 10:56:51
【问题描述】:
我已经在 EC2 上安装了 spark 2.0,我正在使用 SparkSQL,使用 Scala 从 DB2 中检索记录,我想写入 S3,我正在将访问密钥传递给 Spark 上下文。以下是我的代码:
val df = sqlContext.read.format("jdbc").options(Map( "url" -> , "user" -> usernmae, "password" -> password, "dbtable" -> tablename, "driver" -> "com.ibm.db2.jcc.DB2Driver")).option("query", "SELECT * from tablename limit 10").load()
df.write.save("s3n://data-analytics/spark-db2/data.csv")
它抛出以下异常:
org.apache.hadoop.fs.s3.S3Exception: org.jets3t.service.S3ServiceException: Service Error Message. -- ResponseCode: 403, ResponseStatus: Forbidden, XML Error Message: <?xml version="1.0" encoding="UTF-8"?><Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>1E77C38FA2DB34DA</RequestId><HostId>V4O9sdlbHwfXNFtoQ+Y1XYiPvIL2nTs2PIye5JBqiskMW60yDhHhnBoCHPDxLnTPFuzyKGh1gvM=</HostId></Error>
Caused by: org.jets3t.service.S3ServiceException: Service Error Message.
at org.jets3t.service.S3Service.putObject(S3Service.java:2358)
at org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.storeEmptyFile(Jets3tNativeFileSystemStore.java:162)
当我将访问密钥也传递给 Sparkcontext 时,这里发生的确切问题是什么?还有其他方式写入 S3 吗??
【问题讨论】:
-
来自消息
Access Denied 可能是用户没有足够的权限docs.aws.amazon.com/redshift/latest/dg/…
标签: scala apache-spark amazon-s3 apache-spark-sql spark-dataframe