我正在尝试使用Step函数读取数据并将输出写入S3存储桶,但无法执行。出现以下错误。
Status :FAILED
Reason : S3 Service Error.
Log File : s3://test-system/Log/EMR/j-27THIBBI6291N/steps/s-F9UPNCV45OHA/stderr.gz
Details : Caused by: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 0E94EA8E20FE8396), S3 Extended Request ID: 9QxTxb3bzNwPnIieC8UAAtnAcJp+Z4RgM+aqBSki7RjLW8pRHZiII30dU6Bm0qYAHrS2MQcE9r4=
JAR location : command-runner.jar
Main class : None
我已经在Intellij中尝试了相同的代码,并且能够从s3存储桶读取数据或向s3存储桶写入数据文件。
我在代码中使用了Accesskey和Secrey键,但仍然收到相同的错误。 我正在通过Step函数中的lambda函数调用jar文件。
我的代码:
val df = spark.read.format("csv").option("header","true").option("inferSchema","true").load("s3a://test-system/test.csv")
sloggeri.debug("File Processing...","import_jar","sampleifleread","")
df.createOrReplaceTempView("data")
sloggeri.debug("File Processing...1....","import_jar","sampleifleread","")
val res = spark.sql("select count(*) from data")
sloggeri.debug("File Reading completed...","import_jar","sampleifleread","")
res.coalesce(1).write.format("csv").option("header","true").mode("Overwrite")
.save("s3a://test-system/Output/Test_Result")
以上代码正在运行并经过测试。 你能帮我解决这个问题吗?
非常感谢。