我正在尝试使用pyspark和emr编写一个具有以下spark配置的Dataframe
conf = pyspark.SparkConf().setAll([("spark.hadoop.fs.s3.acl.default", "BucketOwnerFullControl"),
("spark.hadoop.fs.s3.enableServerSideEncryption", "true"),
("spark.hadoop.fs.s3.server-side-encryption-algorithm", "AES256")
])
spark = SparkSession.\
builder.\
config(conf=conf).\
master("yarn").\
appName(app_name).\
enableHiveSupport().\
getOrCreate()
我可以使用以下方法将对象写入s3:
df.write.mode("overwrite").parquet(s3path)
但是s3中的对象显示如下:
Storage class
Standard
Server-side encryption
Access denied
在需要的地方
我的同事在尝试访问这些对象时确实会被拒绝访问。
我想知道的是,对于emr,您必须在通过aws创建集群之前设置spark配置,并且您不能在spark应用程序会话中更改这些配置吗?
暂无答案!
目前还没有任何答案,快来回答吧!