AWS Glue输出文件名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS Glue输出文件名相关的知识,希望对你有一定的参考价值。

我正在使用AWS来转换一些JSON文件。我已将文件添加到S3的Glue中。我设置的作业在ok中读取文件,作业成功运行,有一个文件添加到正确的S3存储桶中。我遇到的问题是我无法命名文件 - 它被赋予一个随机名称,它也没有给出.JSON扩展名。

如何命名文件并将扩展名添加到输出中?

答案

由于Spark工作原理的特性,因此无法命名文件。但是,可以在之后重命名文件。

URI = sc._gateway.jvm.java.net.URI
Path = sc._gateway.jvm.org.apache.hadoop.fs.Path
FileSystem = sc._gateway.jvm.org.apache.hadoop.fs.FileSystem
fs = FileSystem.get(URI("s3://{bucket_name}"), sc._jsc.hadoopConfiguration())

file_path = "s3://{bucket_name}/processed/source={source_name}/year={partition_year}/week={partition_week}/"
df.coalesce(1).write.format("json").mode("overwrite").option("codec", "gzip").save(file_path)

# rename created file
created_file_path = fs.globStatus(Path(file_path + "part*.gz"))[0].getPath()
fs.rename(
    created_file_path,
    Path(file_path + "{desired_name}.jl.gz"))

以上是关于AWS Glue输出文件名的主要内容,如果未能解决你的问题,请参考以下文章

在运行 AWS Glue ETL 作业并命名输出文件名时,有没有办法从 S3 存储桶中读取文件名。 pyspark 是不是提供了一种方法来做到这一点?

AWS Glue 检查文件内容的正确性

使用 Python 在 AWS Glue 中打开和读取文件

AWS Glue-如何在 S3 中将动态帧编写为 .txt 文件并使用“|”作为分隔符

如何在 ETL 处理之前检查 AWS Glue 架构?

AWS Glue - boto3 爬虫未创建表