#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