RDD是壹個彈性分布式數據集,數據集的概念更強。容器可以保存任何類型的可序列化元素(支持泛型)。
RDD的缺點是無法知道每個元素的內部場信息。意思是名字,年齡等。在下面的圖片中,人物體的形狀是未知的。
DataFrame也是壹個彈性分布式數據集,但本質上是壹個分布式數據表,所以稱之為分布式表更準確。DataFrame的每個元素都不是通用對象,而是行對象。
DataFrame的缺點是Spark SQL DataFrame API不支持編譯時類型安全,所以如果結構未知,就無法操作數據。同時,壹旦將域對象轉換為數據框,就無法重建域對象。
DataFrame=RDD- Generic +schema+便捷的SQL操作+catalyst優化,DataFrame本質上是壹個分布式數據表。DataFrame的功能優於RDD,因為它提供了內存管理和優化的執行計劃。