Код: Выделить всё
final_df = (
lf1.join(lf2, on="id", how="left")
.join(lf3, on="id", how="left")
.join(lf4, on="id", how="left")
)
И для информации есть столбец, который я удалил, который может ограничить соединение (если идентификатор совпадает, то «зона» с низкой мощностью столбца равна)
Даже при использовании потокового режима хеш-таблицы, созданные во время соединений, потребляют много памяти. Я пробовал разные вещи (выравнивание/объединение, объединение + группировка, сортировка перед объединением, разделение по зоне, объединение по идентификатору и зоне, объединение столбцов - это структура...). Тем не менее, я не нашел хорошего способа выполнять эти соединения более эффективно с точки зрения использования памяти без значительного снижения производительности (например, записывая промежуточные результаты в Parquet после каждого соединения).
Есть ли у кого-нибудь предложения или рекомендации по выполнению больших левых соединений более эффективным с точки зрения использования памяти способом?
Подробнее здесь: https://stackoverflow.com/questions/798 ... and-high-n
Мобильная версия