Как удалить таблицу postgres и загрузить целый фрейм данных в новый? - PullRequest
0 голосов
/ 23 марта 2020

при попытке загрузить фрейм данных в postgresDB (используя sqlalchemy, psycopg2, python, pandas) я заметил, что ничего не пишется. После поиска немного в SA, ответ предложил указать схему, поэтому я использовал следующее:

raw_df.to_sql(name="raw_data", con=engine, if_exists="append", index=False, schema="public")

К сожалению, это тоже не сработало (таблица была создана, но данные не были загружены), поэтому Я попробовал следующее:

raw_df.to_sql(name="public.raw_data", con=engine, if_exists="append", index=False, schema="public")

И теперь у меня появилась следующая таблица, которую я не могу удалить.

enter image description here

Каждый раз, когда я пытаюсь получить это:

psycopg2.errors.FeatureNotSupported: cross-database references are not implemented: "public.public.raw_data"

Я пытался удалить всю схему publi c и воссоздать ее, чтобы сделать это go, но у меня нет прав.

Итак, мои два вопроса следующие: 1. Как я могу удалить "publi c .publi c .raw_data"? 2. Как правильно загрузить весь df в таблицу postgres с именем raw_data?

Для нет. 2 У меня есть следующее:

engine = sqlalchemy.create_engine("postgresql://{}:{}@{}:{}/{}".format(credentials["username"], credentials["password"], credentials["host"], credentials["port"], credentials["database"]))

raw_df.to_sql(name="raw_data", con=engine, if_exists="append", index=False, schema="public")

Все библиотеки импортированы, заголовок df совпадает с предварительно созданными полями таблицы raw_data, а df действителен с данными внутри.

Спасибо

...