Spark: Как и RDD, наборы данных и кадры данных также неизменны?

В Apache Spark RDD неизменяемы.
Как насчет наборов данных и фреймов данных? Являются ли они изменяемыми или неизменяемыми (поскольку основная структура по-прежнему является RDD)?


person samshers    schedule 02.07.2020    source источник
comment
все неизменно. Каждая операция возвращает новый DataFrame/DataSet.   -  person Saša Zejnilović    schedule 02.07.2020


Ответы (2)


Поскольку структурированные API, такие как DataFrames/Datasets, построены поверх RDD (низкоуровневый API), которые являются неизменяемыми по своей природе, поэтому Dataframes/Datasets являются неизменяемыми по своей природе.

СДР не просто неизменяемы, а являются детерминированной функцией их ввода. Это означает, что RDD можно воссоздать в любое время. Каждый раз, когда RDD присваивается уникальный идентификатор.

myDF.rdd.id() #Before id

myDF = myDF.withColumn("salary",col("salary")*100)

myDF.rdd.id() #After id
person Shantanu Kher    schedule 07.07.2020
comment
как насчет вычислений вне кучи? Затем я полагаю, что структуры данных, хранящиеся вне кучи, также неизменны. - person samshers; 07.07.2020

Набор данных принадлежит Spark-SQL API, после LogicalPlan и PhysicalPlan он передается программе RDD. поэтому набор данных неизменен.

person Pookly    schedule 07.07.2020