簡體   English   中英

Spark 數據集使用案例 class

[英]Spark Dataset using case class

當我們必須將 Spark Dataframe 轉換為數據集時。 我們一般使用案例 class。 這意味着我們正在將一行 un-Type 轉換為 Type。 例子:

case class MyData (Name: String, Age: Int)
import spark.implicits._
val ds = df.as[MyData] 

假設我有一個 RDD & 映射與案例 class 然后轉換為 dataframe。 為什么最后 dataframe 顯示 Dataset[Row]。

case class MyData(Name: String, Age: Int)    
object learning extends App{
    
      val spark = SparkSession.builder()
        .appName("dataFrames")
        .config("spark.master", "local")
        .getOrCreate()
    
      val data = Seq(("A",100),("B",300),("C",400))
      val rdd = spark.sparkContext.parallelize(data)
      val rddNew = rdd.map( x => MyData(x._1,x._2) )
      val newDataFrame = spark.createDataFrame(rddNew)
      newDataFrame.show()
    }

在此處輸入圖像描述

為什么這個 dataframe 不顯示為 Dataset[MyData]?

這是因為DataFrame spark.createDataFrame相當於Dataset[Row]

如果您希望返回類型為Dataset[MyData] ,請使用spark.createDataset

import spark.implicits._
val newDataset: Dataset[MyData] = spark.createDataset[MyData](rddNew)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM