第一种 :RDD—>DataFrame 直接手动指定schema
//首先初始化
val conf = new SparkConf().setAppName("transDemo").setMaster("local")
val sparkSession = SparkSession.builder()
.config(conf)
.getOrCreate()
val sc = SparkContext.getOrCreate(conf)
//需求是wordCount,将结果转换为DataFrame
val res = sc.makeRDD(List("hello world hello nice","good nice local took collect"))
val res1 = res.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_)
//导入sparkSession下的implicits._
import sparkSession.implicits._
//转换操作,指定类colNames,这里就是word 和 count 顺便打印一下结果
res1.toDF("word","count").show()
sc.stop()
sparkSession.stop()
结果:
第二种 :RDD—>DataFrame 通过反射推断Schema 通过样例类的方式