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”
2条答案
按热度按时间gdrx4gfi1#
如果不告诉spark(jvm)应用程序读取环境变量,它将无法读取,因此有一个快速解决方法:
字符串
您还需要精确到s3端点:
型
要了解有关什么是AWS S3 Endpoint的更多信息,请参阅以下文档:
cnjp1d6j2#
bucket可以被加密。需要定义sse算法和密钥