以下是使用AWS Glue ETL将数据转移到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
# 创建SparkContext和GlueContext
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
# 获取解析后的参数
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
# 创建Glue作业
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
# 创建数据源和目标
datasource = glueContext.create_dynamic_frame.from_catalog(database = "your_database", table_name = "your_table")
datasink = glueContext.write_dynamic_frame.from_options(frame = datasource, connection_type = "s3", connection_options = {"path": "s3://your_bucket/your_folder/"})
# 执行作业
job.commit()
使用AWS Glue控制台创建一个新的ETL作业,然后将上述代码粘贴到脚本编辑器中。
配置作业的数据源和目标:
配置作业的其他选项,如作业名称、角色等。
保存并运行作业,AWS Glue将开始将数据从数据源转移到S3存储桶。
请注意,上述代码示例中的"your_database"、"your_table"、"your_bucket"和"your_folder"应替换为您自己的数据库、表、S3存储桶和文件夹路径。