Мой код:
Код: Выделить всё
import polars as pl
from sqlalchemy import create_engine, MetaData, Table , select, func, case, literal_column, literal, distinct, and_, or_, extract
E27V422024= create_engine('mssql://'+'xd'+'/'+'WMBDP2024'+'?trusted_connection=yes&driver=ODBC+Driver+17+for+SQL+Server',
pool_size= 0, max_overflow=0
)
concatenated_df = pl.DataFrame()
for row in first_five_rows.to_dicts():
rut = row['Rut']
fechaI = row['FechaEnvio']
fechaO = row['FechaTermino']
# Execute the query and store the result in a temporary DataFrame
temp_df = pl.read_database(f"""
SELECT
rut,
codtran,
coderr,
monto,
fecha
FROM database
WHERE rut = {rut} AND fecha BETWEEN '{fechaI}' AND '{fechaO}'
AND codtran IN ('MPMR80', 'MPMR22', 'SCULOE')
""", connection=E27V422024.connect())
if temp_df.shape[0] == 0:
data = {"rut": rut,
"codtran": 'nop',
"coderr": 'nop',
"monto": 8888,
"fecha":fechaI}
data_df = pl.DataFrame(data, schema={"rut": pl.Int64(),
"codtran": pl.String(),
"coderr": pl.String(),
"monto": pl.Decimal(),
"fecha": pl.Datetime()}, strict=False)
temp_df = data_df
else:
pass
concatenated_df = pl.concat([concatenated_df, temp_df])
print(concatenated_df)
Я искал и нашел код с такими библиотеками, как psycopg2 и gevent. Однако я думаю, что есть простой способ решить эту проблему.
Некоторая дополнительная информация:
Я использую Polars, сервер находится на сервере Microsoft sql. .
Обновление:
Я только что добавил в create_enige следующее:
Код: Выделить всё
create_engine('base',pool_size= 0, max_overflow=0, connect_args={'timeout': 2})
Подробнее здесь: https://stackoverflow.com/questions/784 ... ing-polars