【发布时间】:2020-12-01 21:30:31
【问题描述】:
我正在从 EMR 集群运行 pyspark 应用程序。我有两个桶 - 一个输入数据桶 user-data-input 和一个 o/p 数据桶来存储脚本结果 movie-stats。我的写入输出桶的代码
final_df = ratings.join(movie_title, 'movieId', 'left') \
.select('movieId', 'title', 'release_year', 'avg_rating', 'ratings_count', 'distinct_viewers') \
.coalesce(1)
final_df.write.csv('s3://movie-stats', header=True, mode='overwrite')
我的 movie-stats 存储桶政策如下。
{
"Version": "2012-10-17",
"Id": "Policy1606478144619",
"Statement": [
{
"Sid": "Stmt1606478053538",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": [
"arn:aws:s3:::movie-stats/*",
"arn:aws:s3:::movie-stats"
]
}
]
}
我的脚本可以从 S3 存储桶读取数据并运行分析,但在尝试写入 S3 时抛出错误
java.net.URISyntaxException: Relative path in absolute URI: s3://movie-stats.spark-staging-f2e2ecd7-5c42-483a-888c-6a6295b76c0d
我不理解这个错误,也没有从 google 中找到太多信息来了解应该如何为输出提及 S3 路径。
【问题讨论】:
标签: amazon-s3 amazon-emr