0

我正在使用awswrangler在我的 S3 中编写镶木地板,我通常在我的所有对象上添加标签以进行访问和成本控制,但我没有找到直接使用 awswrangler 的方法。我目前正在使用下面的代码进行测试:

import awswrangler as wr
import boto3
import pandas as pd

# Boto session
session = boto3.Session(profile_name='my_profile')

# Dummy pandas dataframe
d = {'col1': [1, 2], 'col2': [3, 4]}
df_pandas = pd.DataFrame(data=d)

wr.s3.to_parquet(df=df_pandas, path='s3://my-bucket/path/', boto3_session=session)

有一种方法可以将标签添加到.to_parquet将在我的 S3 中写入的对象?

4

1 回答 1

1

我刚刚发现awswrangler有一个名为的参数s3_additional_kwargs,您可以将其他变量传递给awswrangler为您执行的 s3 请求。您可以像在 boto3 中一样发送标签'Key1=value1&Key2=value2'

以下是如何向对象添加标签的示例:

import awswrangler as wr
import boto3
import pandas as pd

# Tagging
tag_set = 'Key1=value1&Key2=value2'

# Boto session
session = boto3.Session(profile_name='my_profile')

# Dummy pandas dataframe
d = {'col1': [1, 2], 'col2': [3, 4]}
df_pandas = pd.DataFrame(data=d)

wr.s3.to_parquet(df=df_pandas, path='s3://my-bucket/path/', s3_additional_kwargs={'Tagging': tag_set}, boto3_session=session)
于 2021-09-07T10:08:29.783 回答