Как загрузить файл .csv из корзины S-3 в Redshift в виде новой таблицы по определенной схеме, используя Python3 эффективным способом? - PullRequest
1 голос
/ 07 апреля 2020

Я пытаюсь загрузить pandas фрейм данных в базу данных Redshift, используя блокнот jupyter. Я прошел по следующим ссылкам:

Как записать данные в Redshift, которые являются результатом кадра данных, созданного в Python?

Python: 3.6

Windows: 10

Вот код:

import psycopg2
import pandasql as ps
from sqlalchemy import create_engine


sql_conn=create_engine('postgresql://{}: 
   {}@{}:XXXX/{}'.format(user,password,host,db))


df.to_sql('data',con=sql_conn,schema="schema",
                index=False,if_exists='replace')
  1. В таблице есть миллионы записей и 100 столбцов, и это занимает часы чтобы загрузить.

  2. Как я могу загрузить использование корзины s3, используя python, а затем загрузить в Redshift?

Я пытался эта ссылка:

Как скопировать файл данных CSV в Amazon RedShift?

toRedshift = "COPY final_data from 's3://XXX/XX/data.csv' CREDENTIALS 
'aws_access_key_id=XXXXXXX;aws_secret_access_key=XXXX' removequotes  
 delimiter ',';"
 sql_conn.execute(toRedshift)

Ошибка: невозможно скопировать в несуществующую таблицу final_data.

Как создать таблицу в Redshift, используя S3 CSV-файл в Python? Есть ли способ сделать это без определения типов столбцов?

...