如何使用Lambda合并来自S3存储桶的两个CSV文件

0

【以下的问题经过翻译处理】 我一直在尝试创建一个Lambda函数,每当有新文件上传到一个S3存储桶时就会触发它。目前,这个存储桶中只会包含两个文件。该函数的目标是将这两个文件合并。我使用Python编写函数,并创建了一个层以便使用pandas库。我目前的尝试如下所示,但出现了一个关于存储桶名称不正确的错误消息。

def lambda_handler(event, context):
  bucket = 'arn:aws:s3:::name-of-the-bucket/subfolder/'
  filename_1 = 'first_file.csv'
  filename_2 = 'second_file.csv'

  s3 = boto3.client('s3')

  first_obj = s3.get_object(Bucket= bucket, Key= filename_1)
  second_obj = s3.get_object(Bucket= bucket, Key= filename_2)

  first_df = pd.read_csv(first_obj['Body'])
  second_df = pd.read_csv(second_obj['Body'])

  joined_df = first_df.merge(second_df, on=['ID'], how='left')

 return joined_df
profile picture
ESPECIALISTA
feita há 6 meses6 visualizações
1 Resposta
0

【以下的回答经过翻译处理】 存储桶名称应该是不包含子文件夹的存储桶名称。

将您的代码更改为:

bucket = 'name-of-the-bucket'
filename_1 = 'subfolder/first_file.csv'
filename_2 = 'subfolder/second_file.csv'
profile picture
ESPECIALISTA
respondido há 6 meses

Você não está conectado. Fazer login para postar uma resposta.

Uma boa resposta responde claramente à pergunta, dá feedback construtivo e incentiva o crescimento profissional de quem perguntou.

Diretrizes para responder a perguntas