要解决AWS Glue将重复记录附加到数据目录中的问题,可以使用以下代码示例来删除重复记录:
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from pyspark.sql import SparkSession
# 创建Spark会话
spark = SparkSession.builder \
.appName("Remove Duplicate Records") \
.getOrCreate()
# 获取Glue作业参数
args = getResolvedOptions(sys.argv, ['JOB_NAME'])
# 创建动态框架
glueContext = GlueContext(SparkContext.getOrCreate())
# 读取数据目录中的数据
source_data = glueContext.create_dynamic_frame.from_catalog(database = "your-database", table_name = "your-table")
# 去除重复记录
deduplicated_data = DropDuplicates.apply(frame = source_data)
# 将去重后的数据保存到数据目录
glueContext.write_dynamic_frame.from_catalog(frame = deduplicated_data, database = "your-database", table_name = "your-table")
# 结束Spark会话
spark.stop()
请注意,上述代码示例中的your-database和your-table应替换为实际的数据库和表名。此外,还需要使用适当的from_catalog和write_dynamic_frame.from_catalog函数参数来指定正确的数据目录。
以上代码示例使用AWS Glue的DropDuplicates转换来删除重复记录,并使用write_dynamic_frame.from_catalog函数将去重后的数据保存回数据目录中。