Я использую pyodbc и pandas на python 3.5 для загрузки ~ 10000 строк данных из MS Access 2010 в фрейм данных и вычисления некоторых корреляций впоследствии.python (pyodbc): Запустить мс запрос доступа из результатов python к ошибке размера
Когда я пытаюсь код ниже, чтобы увидеть, что делает генератор, код печати около 9600 ожидаемых строк из из ~ 10000, а затем я получаю сильфона ошибку:
[Microsoft][ODBC Microsoft Access Driver] The query cannot be completed. Either the size of the query is larger than the maximum size of a database (2 GB), or there is not enough temporary storage space on the disk to store the query result.
**Code:**
Import pyodbc
import pandas as pd
con = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=MyDB.mdb;')
cur - con.cursor()
sql = "SELECT * from [query table]" # I have a query table which is pivoting the data inside the access.
def gen(cursor, sql):
cursor.execute(sql)
While True:
row = cursor.fetchone()
if row is None:
break
yield row
for x in gen(cur,sql):
print(x)
У меня есть определенная другая функция, которая получает строку генератора и добавляет их в список, а затем в pd.Dataframe, но, похоже, генератор не выполняет задание.
Я уплотнил и отремонтировал базу данных, но не повезло. Кроме того, размер файла mdb не более 500 Мб на данный момент.
Не могли бы вы дать мне знать, как я могу преодолеть эту ошибку?
Большое спасибо заранее.
Возможно, попробуйте 'con.autocommit = True' сразу после вашего звонка на' pyodbc.connect' –
Спасибо большое Горд - он сработал! Хотели бы вы сообщить мне (для моего понимания), как это исправить мою проблему? Еще раз большое спасибо. – pbou