回覆列表
  • 1 # 使用者5823396907112

    RDD(彈性分散式資料集)是spark中最基本的抽象資料型別。在此基礎上,spark又引入了DataFrame和DataSet。在平時的程式設計中,我們會經常遇到RDD和DataFrame之間的轉換操作。那麼,這兩者有什麼區別呢?

    一般我們在spark程式碼中都是透過spark SQL或者read操作從hive表中獲取資料,返回的都是DataFrame型別,包含了元資料資訊,能夠透過select、filter等運算元直接操作資料的某些欄位。即DataFrame提供了資料的欄位名、資料型別等,從而可以方便地使用spark SQL語句進行操作。而RDD是不清楚資料的這些詳細資訊的,因此不支援spark SQL操作。

    如果需要map操作,一般會將DataFrame轉為RDD。此時就需要在程式碼中新增一行:

    這樣就可以支援兩者之間的潛在轉換。

    DataFrame轉為RDD後,需要透過解析來獲取每個欄位的值。

    RDD如果需要轉為DataFrame,一般都會給欄位命名,方便下面的使用。

    在實際使用中,這兩者其實差異性不是很大,主要是spark支援兩者的切換。

    有說的不對的地方,請多指教啊~

  • 中秋節和大豐收的關聯?
  • 食品生物技術的就業方向有哪些?