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]