ablog

不器用で落着きのない技術者のメモ

PySpark on Glue で S3 上のファイル名をリネームする

PySpark on Glue で S3 上のファイルをリネームしてみた。

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job

glueContext = GlueContext(SparkContext.getOrCreate())

URI = SparkContext._gateway.jvm.java.net.URI
Path = SparkContext._gateway.jvm.org.apache.hadoop.fs.Path
FileSystem = SparkContext._gateway.jvm.org.apache.hadoop.fs.s3.S3FileSystem

fs = FileSystem.get(URI("s3://{}".format('raw_log_bucket')), glueContext._jsc.hadoopConfiguration())

fs.rename(
    Path("s3://raw_log_bucket/log_20200122"),
    Path("s3://raw_log_bucket/log_20200122_renamed")
)