既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
3、处理数据或创建临时视图(视情况而定是否需要)
4、写SQL或自定义UDF函数或使用DSL
5、查询、显示
6、关闭
完整代码:
public class JavaSql03_local extends UDF {
public static void main(String[] args) {
//TODO 运行环境
SparkSession sparkSession = SparkSession.builder().appName("JavaSql03_local").master("local[*]").getOrCreate();
sparkSession.sparkContext().setLogLevel("WARN");
//TODO 加载数据
//从jdbc加载数据
//方法一
/*Dataset<Row> ds1 = sparkSession.read().format("jdbc")
.option("url", "jdbc:mysql://localhost:3306/mydb")
.option("driver","com.mysql.jdbc.Driver")
.option("user", "root")
.option("password", "123456")
.option("dbtable", "person")
.load();
ds1.printSchema(); //输出字段类型
ds1.show();*/
//方法二
Properties properties = new Properties();
properties.put("user","root");
properties.put("password","123456");
Dataset<Row> ds2 = sparkSession.read()
.jdbc("jdbc:mysql://localhost:3306/mydb", "person", properties);
ds2.printSchema(); //输出字段类型
ds2.show();
//TODO 处理数据
//创建视图
//ds1.createOrReplaceTempView("tableName1");
ds2.createOrReplaceTempView("person");
//TODO 自定义UDF函数
// sparkSession.udf().register("udfName",(String value)=>{
// value.toUpperClass();
// })
//TODO ================SQL================================
String sql = "SELECT " +
" name," +
" (age + 1) as nianl" +
" FROM" +
" `person`";
sparkSession.sql(sql).show();
sparkSession.sql(sql).createOrReplaceTempView("table1");
int age = 12;
//传递参数
sparkSession.sql("select name,nianl from table1 where nianl = '"+age+"'").show();
//sparkSession.sql("select name,nianl from person where nianl = '${age}'").show();
/**
* +---+----+---+
* | id|NAME|age|
* +---+----+---+
* | 1| zs| 11|
* | 2| ls| 22|
* | 3| ww| 33|
* +---+----+---+
* */
//TODO ================DSL================================
System.out.println("=========DSL=========");
ds2.select(col("age").plus(1)).show();
// ds2.groupBy("name")
// .count()
// .orderBy(col("age").desc()) //使用col()需要引入包 import static org.apache.spark.sql.functions.col;
// //.write()
// //.mode(SaveMode.Overwrite)
// //.jdbc()
// .filter("") //过滤 相当于where
// .agg(avg("age"),max("age"))//分类聚合函数,常与groupby连用
// .show();
// ;
// //方法二
// ds1.write().format("jdbc")
// .option("url","jdbc:mysql//....")
// .option("user","root")
// .option("password","123")
// .option("dbtable","t_table")
// .mode(SaveMode.Append)
// .save();
//TODO 关闭
sparkSession.stop();
}
}
二、使用scala语言编写
scala是spark的主要编程语言,相较于java更简洁
上代码:
package spark.sql
import org.apache.spark.SparkContext
import org.apache.spark.sql.{DataFrame, DataFrameReader, Dataset, SaveMode, SparkSession}
import java.util.Properties
![img](https://img-blog.csdnimg.cn/img_convert/2af17dd0cd290b4486e286c1f18cb878.png)
![img](https://img-blog.csdnimg.cn/img_convert/9d7342512da2913f4803475e4cf4bd52.png)
![img](https://img-blog.csdnimg.cn/img_convert/93502624c3641cf8b7a2d52e88231c78.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**