2024年大数据最新spark基础使用指南(3),2024年最新大数据开发400道面试题通关宝典助你进大厂

img
img
img

既有适合小白学习的零基础资料,也有适合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)**

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值