Какова алгоритмическая сложность и/или потребление памяти в операциях dataframe в Spark? Я не могу найти никакой информации в документации.Какова временная сложность и объем памяти операций DataFrame в Spark?
Один полезный пример был бы ответ на/диске объем памяти при удлинении на dataframe с другой колонке (withColumn()
): (в Python с автоматической сборки мусора) это лучше сделать table = table.withColumn(…)
или же extended_table = table.withColumn()
занимает около одной и той же памяти ?
PS: Предположим, что обе таблицы сохраняются с persist()
.
Хорошая точка. Поэтому мой вопрос будет более точным: что произойдет, если мы будем кэшировать как исходную 'таблицу', так и расширенную версию' extended_table', в случае 'withColumn()': у нас есть _copy_ 'table' или просто умное хранилище, которое знает, что 'extended_table' является просто' table' плюс один столбец? – EOL
[Внутренний] (https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/DataFrame.scala) 'withColumn()' просто вызывает знаменитый 'select()', базовая форма которого всегда работает только с коллекциями столбцов и даже не имеет понятия целой таблицы. Это наводит на мысль, что созданный DataFrame - это ваше умное хранилище. Если вы все еще сомневаетесь, должно быть легко проверить потребление памяти вашего DataFrame, посмотрев на [Spark Web UI] (http://127.0.0.1:4040/storage/). – Jonathan