Я пытаюсь написать сценарий, который собирает схему из таблицы базы данных MySQL AWS Aurora Serverless, собирает заголовки столбцов из файла CSV, хранящегося в корзине AWS S3, и записывает CSV в таблицу только в случае заголовков столбцовявляются подмножеством схемы (например, если полями таблицы являются ['Name', 'DOB', 'Height'], а полями CSV являются ['Name', 'DOB', 'Weight'], скрипт выдастисключение.
До сих пор я успешно возвратил схему таблицы в лямбда-функции AWS и успешно прочитал файл CSV, но я не уверен, как получить заголовки столбцов из объекта S3.
def return_db_schema(event):
schema = []
conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5)
with conn.cursor() as cur:
cur.execute('SHOW columns FROM SampleTable')
conn.commit()
cur.close()
for row in cur:
schema.append(list(row)[0])
return schema
def return_csv_cols(event):
s3 = boto3.client('s3')
tester = s3.get_object(Bucket=s3_bucket, Key=test_key)
contents = tester['Body'].read()
def main(event, context):
print(return_db_schema(event))
print()
print(return_csv_cols(event))
Я не уверен, как действовать дальше (например, есть ли способ сделать это, не загружая CSV-файл в DataFrame pandas и не вызывая df.columns()
или что-то в этом роде?).