如何使用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
EXPERT
demandé il y a 6 mois6 vues
1 réponse
0

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

将您的代码更改为:

bucket = 'name-of-the-bucket'
filename_1 = 'subfolder/first_file.csv'
filename_2 = 'subfolder/second_file.csv'
profile picture
EXPERT
répondu il y a 6 mois

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions