#python #pandas #apache-spark #pyspark
#python #pandas #apache-spark #pyspark
Вопрос:
Как pyspark topandas
работает внутри. Я знаю, что фрейм данных Spark может быть преобразован в фрейм данных Pandas как spark_df.toPandas с использованием метода topandas.
После запуска метода topandas
он извлекает все данные в драйвер и преобразует в фрейм данных pandas или преобразование происходит в workers, и фрейм данных pandas будет создан локально для рабочих узлов?
Ответ №1:
Фреймы данных Pandas не распределяются. toPandas()
приведет к тому, что строки фрейма данных будут собраны в драйвер, а затем преобразованы в один фрейм данных Pandas, как указано в документах:
toPandas()
Соберите все строки и верните pandas.Фрейм данных.
Таким образом, все предупреждения, касающиеся сбора данных на одном узле (в данном случае драйвере), также применимы toPandas
.
Комментарии:
1. Имейте в виду, что в зависимости от размера набора данных может произойти переполнение памяти драйвера, потому что, как упоминалось @ernest_k, все данные отправляются в драйвер, где затем
pandas dataframe
создаются.