【发布时间】:2021-08-12 03:43:13
【问题描述】:
我正在使用以下代码将带有标题的数据帧按分区写入 s3:
df_dynamic = DynamicFrame.fromDF(
df_columned,
glue_context,
"temp_ctx"
)
print("\nUploading parquet to " + destination_path)
glue_context.write_dynamic_frame.from_options(
frame=df_dynamic,
connection_type="s3",
connection_options={
"path": destination_path,
"partitionKeys" : ["partition_id"]
},
format_options={
"header":"true"
},
format="glueparquet"
)
创建文件后,我看到我在列标题后添加了#1、#2。 示例:如果我的列名是“Doc Data”,它将被转换为 Doc_Date#1
我认为这是一种保存数据的镶木地板方式。 然后,当我尝试使用下面的代码从相同的文件中读取时,我的标题不再相同。现在它们以 Doc_Date#1 的形式出现。我该如何解决这个问题?
str_folder_path = str.format(
_S3_PATH_FORMAT,
args['BUCKET_NAME'],
str_relative_path
)
df_grouped = glue_context.create_dynamic_frame.from_options(
"s3",
{
'paths': [str_folder_path],
'recurse':True,
'groupFiles': 'inPartition',
'groupSize': '1048576'
},
format_options={
"header":"true"
},
format="parquet"
)
return df_grouped.toDF()
【问题讨论】: