Conexión a MariaDB usando Python#

  • Última modificación: Mayo 26, 2022

Descarga de datos#

[1]:
url = "https://raw.githubusercontent.com/jdvelasq/datalabs/master/datasets/drivers/drivers.csv"
!wget --quiet {url} -P /tmp/

Instalación del conector#

Ya está incluido en el contenedor

pip3 install mariadb

Conexión a MariaDB#

[2]:
import mariadb

conn = mariadb.connect(
    user="root",
    password="",
)

cur = conn.cursor()

Creación de la base de datos y la tabla#

[3]:
cur.execute("DROP DATABASE IF EXISTS demo_db;")
cur.execute("CREATE DATABASE demo_db;")
cur.execute("USE demo_db;")
cur.execute("DROP TABLE IF EXISTS drivers;")

cur.execute(
    """
    CREATE TABLE drivers (
        driverId       INT,
        name           VARCHAR(20),
        ssn            VARCHAR(20),
        location       VARCHAR(40),
        certified      VARCHAR(20),
        wage_plan      VARCHAR(20)
    );
    """
)

conn.commit()

Importación de datos y cierre de la conexión#

[4]:
import pandas as pd

drivers = pd.read_csv("/tmp/drivers.csv")

for i, row in drivers.iterrows():
    sql = "INSERT INTO drivers VALUES (%s,%s,%s,%s,%s,%s)"
    cur.execute(sql, tuple(row))
    conn.commit()

conn.close()

Verificación#

[5]:
!mariadb -u root -e "USE demo_db; SELECT * FROM drivers LIMIT 5;"
+----------+-------------------+-----------+---------------------------+-----------+-----------+
| driverId | name              | ssn       | location                  | certified | wage_plan |
+----------+-------------------+-----------+---------------------------+-----------+-----------+
|       10 | George Vetticaden | 621011971 | 244-4532 Nulla Rd.        | N         | miles     |
|       11 | Jamie Engesser    | 262112338 | 366-4125 Ac Street        | N         | miles     |
|       12 | Paul Coddin       | 198041975 | Ap #622-957 Risus. Street | Y         | hours     |
|       13 | Joe Niemiec       | 139907145 | 2071 Hendrerit. Ave       | Y         | hours     |
|       14 | Adis Cesir        | 820812209 | Ap #810-1228 In St.       | Y         | hours     |
+----------+-------------------+-----------+---------------------------+-----------+-----------+