Spark RDD、DF、DS互轉

DataFrame/Dataset 轉RDD

val rdd1=df.rdd
val rdd2=ds.rdd

RDD 轉DataFrame

import spark.implicits._
val df = rdd.map {line=>
(line._1,line._2)
}.toDF("col1","col2")

一般用元組把一行的數據寫在一起,然後在toDF 中指定字段名
一定要加上import spark.implicits._ 不然toDF、toDS 無法使用

RDD 轉Dataset

import spark.implicits._
// case 類
case class Coltest(col1:String,col2:Int) extends Serializable 
val ds = rdd.map {line=>
Coltest(line._1,line._2)
}.toDS

Dataset 轉DataFrame

import spark.implicits._
val df = ds.toDF

DataFrame 轉Dataset

import spark.implicits._
case class Coltest(col1:String,col2:Int)extends Serializable //定義字段名和類型
val testDS = testDF.as[Coltest]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章