【发布时间】:2022-12-10 21:24:45
【问题描述】:
我需要一些关于如何使用 python 将包含 csv 数据的大于 5GB 的大型数据帧上传到 s3 的输入。
我正在运行一项胶水作业 (PYSPARK),它将多个 csv 文件连接到一个 csv 中,并将连接后的 csv 上传到 s3
我收到错误“botocore.exceptions.ClientError:调用 UploadPart 操作时发生错误(EntityTooLarge):您建议的上传超出最大允许大小”
以下是我正在尝试做的事情:
dataframe = pandas.read_csv(obj["Body"], delimiter=",", keep_default_na=False, low_memory=False, dtype=str)
dataframe.to_csv(buffer_value, sep=",", index=False)
payload = buffer_value.getvalue()
client_kwargs = {'S3.Client.create_multipart_upload': {'ServerSideEncryption': 'aws:kms', 'SSEKMSKeyId': kms_key}, 'S3.Client.put_object': {'ServerSideEncryption': 'aws:kms', 'SSEKMSKeyId': kms_key}}
with smart_open.open(url, 'w', transport_params={'client_kwargs': client_kwargs, 'client': s3_client}) as payload_write:
payload_write.write(payload)
【问题讨论】:
-
查看
boto3的upload_file方法?
标签: python dataframe amazon-s3 pyspark aws-glue