以下两个pyspark声明之间是否存在性能差异或考虑因素:
df5 = df5.drop("Ratings")
和
df6 = df5.drop("Ratings)
不是专门针对drop函数,而是任何操作。想知道当你覆盖一个变量而不是创建一个新变量时会发生什么。
此外,如果这是RDD而不是数据帧,行为和性能考虑是否相同?
答案 0 :(得分:1)
不,操作没有任何区别。
在Numpy的情况下,有一个标记选项,显示它自己的数据是否。
variable_name.flag
对于Pyspark,Dataframe是不可变的,并且数据框中的每个更改都会创建一个新的Dataframe。它是怎么做的?好吧,Dataframe以分布式方式存储。所以,要在内存成本中移动数据。因此,它们将数据的所有权从Dataframe更改为另一个,尤其是在存储数据索引的位置。
和 Dataframe比RDD更好。这是一个很好的博客。 Dataframe RDD and dataset