代码举例
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}
case class User(id:Int,name:String,age:Int)
object SparkSQL03_Transform {
def main(args: Array[String]): Unit = {
//创建配置对象
val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("SparkSQL03_Transform")
//环境对象
val spark: SparkSession = SparkSession.builder().config(sparkConf).getOrCreate()
//隐隐式转换规则
import spark.implicits._
//创建RDD
val rdd: RDD[(Int, String, Int)] = spark.sparkContext.makeRDD(List((1,"zhansgan",30),(2,"lisi",40),(3,"wangwu",79)))
// to DF
val df: DataFrame = rdd.toDF("id","name","age")
// to DS
val ds: Dataset[User] = df.as[User]
// to DF
val df1: DataFrame = ds.toDF()
//转换为rdd
val rdd1: RDD[Row] = df1.rdd
rdd1.foreach(row=>{
//获取数据时可以通过索引访问数据
println(row.getString(1))
})
//释放资源
spark.stop()
}
}
/*
00/00/23 00:12:07 INFO CodeGenerator: Code generated in 11.185477 ms
zhansgan
lisi
wangwu
*/
rdd直接转换到dataset
package com.atguigu.bigdata.spark.sql
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{DataFrame, Dataset, Row, SparkSession}
/**
* rdd直接转换到dataset
*/
/**
* 样例类
* @param id
* @param name
* @param age
*/
case class User1(id:Int,name:String,age:Int)
object SparkSQL03_Transform1 {
def main(args: Array[String]): Unit = {
//创建配置对象
val sparkConf: SparkConf = new SparkConf().setMaster("local[*]").setAppName("SparkSQL03_Transform")
//环境对象
val spark: SparkSession = SparkSession.builder().config(sparkConf).getOrCreate()
//隐隐式转换规则
import spark.implicits._
//创建RDD
val rdd: RDD[(Int, String, Int)] = spark.sparkContext.makeRDD(List((1,"zhansgan",30),(2,"lisi",40),(3,"wangwu",79)))
//RDD 直接->DataSet
val userRDD: RDD[User1] = rdd.map {
case (id, name, age) => {
User1(id, name, age)
}
}
val userDS: Dataset[User1] = userRDD.toDS()
//再转换为rdd输出一下
val rdd1: RDD[User1] = userDS.rdd
rdd1.foreach(println) //rdd这样输出 记住
//释放资源
spark.stop()
}
}
/*
00/00/23 00:00:00 INFO Executor: Running task 1.0 in stage 0.0 (TID 1)
User1(3,wangwu,79)
User1(1,zhansgan,30)
User1(2,lisi,40)
*/
时间一转眼就过去了三年,
一切在我心开的好皎洁,
现在倒计时也不剩几天,
脚边的纸片,
来不及去捡,
仿佛是快要冲破压力的茧,
离校后大家又各自熬夜,
早上的黑眼圈,
课上的小困倦,
一天一天又一天,
我只想拉住流年,
好好的说声再见,
遗憾感谢都回不去昨天,
我只想铭记这瞬间,
我们一起走过的光年,
六月后,
光年成记念,
这个班级太骄傲,
什么课都不发言,
但是还是很温暖,
同学之间的寒暄,
压着课本抄作业,
考试上的看一眼,
现在想起来,
会不会觉得很亲切,
我只想拉住流年,
好好的说声再见,
遗憾感谢都回不去昨天,
我只想铭记这瞬间,
我们一起走过的光年,
我只想拉住流年,
好好的说声再见,
在心中刻下你们的笑脸,
看流星划过天边,
许下我们的心愿,
让现在成为永远,
永远,
永远,
啦啦啦啦啦啦……
雷雨心
雷雨心,蒋思涵
雷雨心
彭飞,郑楠