2
val spark = SparkSession
.builder()
.appName("try1")
.master("local")
.getOrCreate()
val df = spark.read
.json("s3n://BUCKET-NAME/FOLDER/FILE.json")
.select($"uid").show(5)
我已經給了AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY作爲環境變量從S3存儲讀取。在嘗試從S3讀取時,我遇到以下錯誤。無法使用火花
Exception in thread "main" org.apache.hadoop.fs.s3.S3Exception: org.jets3t.service.S3ServiceException: S3 HEAD request failed for '/FOLDER%2FFILE.json' - ResponseCode=400, ResponseMessage=Bad Request
我懷疑錯誤是由於「/」被轉換爲「%2F」,由一些內部功能作爲錯誤顯示「/FOLDER%2FFILE.json」而不是「/FOLDER/FILE.json引起「
感謝@elisah,我試過在代碼中包括你的aws證書,就像你提到的一樣,但我仍然有與代碼400相同的錯誤。我假設這不是問題,因爲它會以這種方式拋出認證錯誤(錯誤代碼403)? – san8055
在Hadoop文檔中有關於S3A故障排除的部分;你應該從那裏開始。我們只是說「不好的認證」有很多可能的原因 –