Есть ли более быстрый способ поместить результат SQL-запроса из Teradata в фрейм данных pandas?

#python #python-3.x #pandas #teradata

Вопрос:

У меня есть SQL-запрос от Teradata с 3 миллионами строк и 50 столбцами.

Я пытаюсь использовать его в python следующим образом:

 data = pd.DataFrame(tera.execute_response('''select * from table'''))
 

Этот процесс продолжается до тех пор, пока мое ядро не умрет, и я не потеряю все.

Комментарии:

1. Почему умирает ядро? Может быть, у вас закончилась оперативная память?

2. Я не совсем уверен, но иногда мне удается получить кадр данных после рабочего дня, так что, думаю, моя оперативная память выдержит это.

3. Может быть, разбить его на куски (например, 10-100 тысяч строк) и загружать последовательно? Тогда вы исключите возможность нехватки оперативной памяти вы можете перезапустить примерно с той же точки, если это не удастся

4. Проблема заключается в части pd.DataFrame. Часть tera.execute_response выполняется быстро.

Ответ №1:

Попробуйте использовать DataFrame.from_query() функцию из teradata, а затем .to_pandas() метод Teradata