[英]Unable to read from s3 bucket using spark
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讀取時,我面臨以下錯誤。
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'
如果您不告訴它,您的spark(jvm)應用程序無法讀取環境變量,因此請快速解決:
spark.sparkContext
.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", awsAccessKeyId)
spark.sparkContext
.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", awsSecretAccessKey)
您還需要確定s3端點:
spark.sparkContext
.hadoopConfiguration.set("fs.s3a.endpoint", "<<ENDPOINT>>");
要了解有關什么是AWS S3 Endpoint的更多信息,請參閱以下文檔:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.