Postgress Datenbank auf Jupyter Notebook im Docker Container starten

heyoka955

Benutzer
Beiträge
13
Ich habe Daten al CSV sowohl local als auch im Dockter container namens departments.csv.
Ich möchte sehr gerne diese CSV Datei in Postgress in Jupyter importieren.
Mein bisheriger Code dazu:


1704467736528.png


bitte bei Fragen melden, bin neu im Forum
 
Werbung:
ja, du kannst keine DB droppen, auf die gerade noch jemand zugreift. Du kannst Tabellen erstellen mit IF NOT EXISTS. Und deine CSV liegt ja sicherlich lokal, der Serverprozess hat keinen Zugriff. Nutze daher \copy
 
%%bash sudo docker run -d --rm \ --name dbis-postgres-db-1 \ --hostname dbis-postgres-db-1 \ -v "${HOST_DATA_PATH}:/mnt/workspace:ro" \ -e POSTGRES_PASSWORD=root \ -p 127.0.0.1:5432:5432 \ --network dbis-hadoop-cluster-network \ postgres:14.4 %%bash sudo docker ps --filter "name=dbis-postgres-db-1" --format "table {{.Names}}\t{{.Status}}" import psycopg postgres_conn = None postgres_cursor = None try: postgres_conn = psycopg.connect("host='dbis-postgres-db-1' dbname='satisfaction' user='postgres' password='root'") postgres_cursor = postgres_conn.cursor() except psycopg.DatabaseError: print("No database connection!") # ... postgres_cursor.close() postgres_conn.close() %%bash cat <<"EOF" | sudo docker exec -i dbis-postgres-db-1 psql -U postgres DROP DATABASE IF EXISTS satisfaction; CREATE DATABASE satisfaction; \c satisfaction; CREATE TABLE department ( id_dept SERIAL PRIMARY KEY, dept VARCHAR(50) NOT NULL, city VARCHAR(50) NOT NULL, zip_code INTEGER NOT NULL ); /COPY department FROM '/home/heyoka/Schreibtisch/master/DE/data-engineering-infrastructure.git/workspace/data/departments.csv' WITH ( FORMAT CSV, DELIMITER ',', HEADER false, NULL '' ); ... EOF

Das war alles in den einzelnen Zellen des Jupyter Notebooks !
 
hatte vertippt aber dennoch gleicher fehler :(
Der Docker Container für die Postgress Datenbank wird selbst in einem Docker Container bereit gestellt.
Muss ich vielleicht den Pfad angeben, wo sich die CSV Datei im Docker Container befindet ? Ansonsten weiß ich nicht weiter !
 
DROP DATABASE
CREATE DATABASE
You are now connected to database "satisfaction" as user "postgres".


\copy: parse error at end of line
ERROR: syntax error at or near "FROM"
LINE 1: FROM '/home/heyoka/Schreibtisch/master/DE/data-engineering-i...
^


CREATE TABLE


ERROR: syntax error at or near ".."
LINE 1: ...
^
 
warum ist die Reihenfolge jetzt erst copy dann create table? im Script ist es andersrum.

Übrigens: für die PLZ ist INTEGER schlecht. Speicher mal so 01723 und schau, was beim Select rauskommt ...
 
Werbung:
Zurück
Oben