У меня есть ноутбук Jupyter, подключенный к MySQL DB через SqlAlchemy (Ubuntu 18.10, python 3.7).
Одна из ячеек запускает SQL и загружает результаты в pandas DataFrame.
Работает нормально, но когда я некоторое время не пользуюсь ноутбуком и снова запускаю ячейку, выполняющую SQL-запрос, ноутбук зависает (но ядро не умирает).
Это происходит либо с pandas.read_sql()
, либо с:
db_engine = create_engine('mysql+mysqldb://<user>:<passwd>@<host>:3306/<db>')
def sqlDF(sql):
conn = db_engine.connect()
result = conn.execute(sql)
columns = result._metadata.keys
resultDF = pd.DataFrame([r for r in result.fetchall()], columns=columns)
conn.close()
return resultDF
df = sqlDF("SELECT * FROM my_table")
Примечание: db_engine = ...
лежит в отдельной ячейке; Я не выполняю его снова после простоя.