我使用Hive在EMR集群上创建了一个指向S3的外部表。现在我正在尝试使用Spark将数据插入到表中,由于权限问题导致数据失败,但使用Hive shell进行相同的插入查询。 我需要在Spark中设置access_key和secret_key吗?我确实在火花壳中尝试了它们,但没有运气。
root
我在这里错过了什么吗?
sc.hadoopConfiguration.set("fs.s3a.access.key","xxxxxxxxxx");
sc.hadoopConfiguration.set("fs.s3a.secret.key","xxxxxxxxxx");
sc.hadoopConfiguration.set("fs.s3.access.key","xxxxxxxxxx");
sc.hadoopConfiguration.set("fs.s3.secret.key","xxxxxxxxxx");
Spark代码:
create external table test
(
column1 string
) stored as parquet location 's3://bucket/data/test';
insert overwrite test select * from source;
错误:
com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: 拒绝访问(服务:Amazon S3;状态代码:403;错误代码: 拒绝访问;请求ID:685BCC1B6F49A705):com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.http.AmazonHttpClient $ RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1588) 在......
谢谢!