Снежинка достать много в питоне - PullRequest
0 голосов
/ 24 января 2019

Я пытаюсь создать фрейм данных pandas, используя пакеты Snowflake в python.

Я запускаю какой-то запрос

sf_cur = get_sf_connector()
sf_cur.execute("USE WAREHOUSE Warehouse;")
sf_cur.execute("""select Query"""
)

print('done')

Выход составляет примерно 21 тыс. Строк. Затем с помощью

df = pd.DataFrame(sf_cur.fetchall())

длится вечно, даже при предельной выборке из 100 строк. Есть ли способ оптимизировать это, в идеале больший запрос будет выполняться в цикле, так что обработка даже больших наборов данных будет идеальной.

1 Ответ

0 голосов
/ 25 января 2019

, так как fetchall() копирует весь результат в память, вы должны попытаться перебрать объект курсора напрямую и сопоставить его с фреймом данных внутри блока for

cursor.execute(query)
    for row in cursor:
    #build the data frame

Другой пример, просто чтобы показать:

query = "Select ID from Users"
cursor.execute(query)
for row in cursor:
    list_ids.append(row["ID"])
...