【大數據學習】之 SparkSQL DataFrame、DataSet的概述

根據官網介紹DataFrame、DataSet:

Dataset 是一個分佈式的數據集合。是spark1.6版本纔出來的。它提供RDD中的有點(強類型、lambda表達式、優化SparkSQL執行引擎)。DataFrame中能用的東西大部分在DataSet都能用。DataSet能夠通過JVM對象構建出來。DataSet能使用函數表達式(map、flatmap、filter等等)。DataSet API能在Java和Scala中使用。python暫不支持。在Scala API中,DataFrame可以等於DataSet[Row],DataFrame = Dataset[Row]。

DataFrame是一個以列(列名、列的類型、列值)的形式構成的分佈式數據集。它在概念上等同於關係數據庫中的表或R / Python中的數據框,但在底層具有更豐富的優化。DataFrame可以從多種來源構建,例如:結構化數據文件(json)、hive中的表、其他外部數據源(mysql、no sql)、已經存在的RDD。DataFrame APIScalaJavaPythonR可用。在ScalaJava中,DataFrameRow的數據集表示。在Scala APIDataFrame它只是一個類型別名Dataset[Row]。而在Java API,用戶需要使用Dataset<Row>來表示DataFrame

Spark 1.3 版本之前是稱呼SchemaRDD的,之後纔有的DataFrame;其實SchemaRDD不就是把一個Schema作用在RDD之上嘛,其實本質上和DataFrame沒有區別。

在1.3版本出來了DataFrame

在1.6版本出來了DataSet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章