У меня есть .sql
файл, который я просто хочу прочитать в блоке данных Pandas в Jupyter Notebook. С CSV файлами мне просто нужно было загрузить файл и создать фреймворк, используя что-то вроде этого:
df = pd.read_csv('file.csv')
Я понимаю, что мой SQL файл должен обслуживаться с использованием приложения базы данных, такого как MySQL. Возможно, существует какой-то способ локального .sql
файла .sql
? Мне не нужно делать какие-либо манипуляции с базой данных - я просто хочу прочитать значения таблиц.
Я думаю, вы должны работать с этой веб-ссылкой, которая будет непосредственно принимать sql-дамп и создает csv, а затем загружать его
http://www.convertcsv.com/sql-to-csv.htm
или вы можете использовать
подпроцесс импорта
proc = subprocess.Popen(["mysql", "--user=%s" % USER, "--password=%s" % PASS, "database"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
out, err = proc.communicate(file("/tmp/dump.sql").read())
Я предполагаю, что вы пытаетесь импортировать таблицу в pandas только из файла.sql без подключения к SQL-серверам или с использованием каких-либо SQL-серверов. Но.sql файлы просто содержат некоторые запросы или даже если вы экспортировали таблицу в.sql файл, для чтения в базу данных pandas потребуется активное соединение с базой данных. Вы можете просмотреть все функции pandas для чтения или записи SQL в IO Tools и заметить, что для всех доступных функций требуется активное соединение.
import pandas as pd
import pyodbc
from sqlalchemy import create_engine
engine = create_engine('mysql+pyodbc://<username>:<password>@<server>:<port>/<db_name>?driver=<driver_name>')
with open('Path/to/xxx.sql', 'r') as sql_file:
query = sql_file.read()
df = pd.read_sql(query, con=cnxn)
вся информация в <> относится к вашей настройке