AWSGlueETL作业从文件中删除分区键
创始人
2024-09-25 15:01:47
0

在AWS Glue ETL作业中,可以使用以下代码示例来删除文件中的分区键:

  1. 从数据目录中获取文件列表。
  2. 对于每个文件,使用 AWS Glue的DynamicFrame API读取数据。
  3. 在DynamicFrame中删除分区键。
  4. 将修改的DynamicFrame写回到输出目录。

以下是代码示例:

import boto3
import sys
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.dynamicframe import DynamicFrame

glueContext = GlueContext(SparkContext.getOrCreate())
spark = glueContext.spark_session
s3 = boto3.client('s3', region_name='us-east-1')

args = getResolvedOptions(sys.argv, ['JOB_NAME', 'input_bucket', 'input_prefix', 'output_bucket', 'output_prefix'])
input_bucket = args['input_bucket']
input_prefix = args['input_prefix']
output_bucket = args['output_bucket']
output_prefix = args['output_prefix']

# Get list of files in input S3 bucket and prefix
response = s3.list_objects_v2(Bucket=input_bucket, Prefix=input_prefix)
files = []

for obj in response['Contents']:
    files.append(obj['Key'])

for file in files:
    datasource0 = glueContext.create_dynamic_frame.from_options(
        connection_type="s3",
        connection_options={"paths": [f"s3://{input_bucket}/{file}"]},
        format="csv",
        format_options={"header": True}
    )

    # Removing partition keys from DynamicFrame
    data_without_partition_keys = datasource0.drop_fields(
        ['partitionColumn1', 'partitionColumn2'])

    # Writing DynamicFrame back to S3 output bucket and prefix
    glueContext.write_dynamic_frame.from_options(
        frame=data_without_partition_keys,
        connection_type="s3",
        connection_options={"path": f"s3://{output_bucket}/{output_prefix}/{file}"},
        format="csv",
        format_options={"header": True}
    )

print("ETL job finished")

此作业将从输入S3路径读取每个文件,并删除DynamicFrame中的分区键。接下来,作业将修改的DynamicFrame写回到输出S3路径。

相关内容

热门资讯

第5分钟辅助!老友广东潮汕麻雀... 老友广东潮汕麻雀辅助是一款专注玩家量身打造的游戏记牌类型软件,在老友广东潮汕麻雀辅助这款游戏中我们可...
7分钟科普!盛世辅助器(辅助挂... 7分钟科普!盛世辅助器(辅助挂)其实真的是有挂(wepoke教程开挂辅助平台) 了解更多开挂安装加(...
第七分钟开挂!温州茶苑辅助器(... 第七分钟开挂!温州茶苑辅助器(辅助挂)原来真的是有挂(靠谱教程开挂辅助插件)>>您好:软件加薇136...
4分钟辅助!微友助手破解版(辅... 4分钟辅助!微友助手破解版(辅助挂)果然是有挂(微扑克教程开挂辅助插件);亲,微友助手破解版这款游戏...
6分钟科普!新518互游脚本(... 6分钟科普!新518互游脚本(辅助挂)其实是有挂的(透牌教程开挂辅助平台)《详细加薇13670430...
第四分钟辅助!新九方透视挂(辅... 第四分钟辅助!新九方透视挂(辅助挂)其实真的有挂(wpk教程开挂辅助下载);亲,新九方透视挂这款游戏...
第8分钟明白!奇迹陕西靖边锅子... 第8分钟明白!奇迹陕西靖边锅子有没有技巧(辅助挂)一贯有挂(教你攻略开挂辅助安装)>>您好:软件加1...
十分钟透视!八闽福建辅助(辅助... 十分钟透视!八闽福建辅助(辅助挂)果然真的是有挂(细节揭秘开挂辅助插件);无需打开直接搜索薇:136...
第九分钟透视!顺欣茶楼辅助软件... 第九分钟透视!顺欣茶楼辅助软件(辅助挂)果然是有挂(介绍教程开挂辅助安装);无需打开直接搜索加薇13...
第2分钟科普!逍遥辅助下载地址... 第2分钟科普!逍遥辅助下载地址(辅助挂)果然真的是有挂(普及教程开挂辅助安装)您好:逍遥辅助下载地址...