- 博客(28)
- 收藏
- 关注
原创 sparksql优化-left join优化为inner join
历史用a left join b,取b相关数据,随着b表数据量不断增加,某天跑批报错。只有2个表关联,查询不复杂。背景:生产环境中表a小表,b大表。b分区表,且用b表全量数据,b表单分区查询900g/天。1、直接加资源,刚开始一段时间有效果,后期数据增加报错。2、后期除了加资源。
2024-11-18 21:23:27
221
2
原创 scala函数
一、函数的基本语法def sum(x:Int,y:int):Int = {x + y}def 定义函数的关键字sum 函数名x y 参数名Int 参数类型最后Int 函数返回值类型x+y 函数体二、函数的定义2.1 六种形式(1)函数 1:无参,无返回值(2)函数 2:无参,有返回值(3)函数 3:有参,无返回值(4)函数 4:有参,有返回值(5)函数 5:多参,无返回值(6)函数 6:多参,有返回值2.2 代码示例**package Functionobje
2021-12-12 11:48:16
449
原创 Redis数据类型
一、 键(key)keys * /查看当前库所有keyexists key /判断某个key是否存在type key /查看key类型del key /删除指定的key数据unlink key /根据value选择非阻塞删除(仅将keys从keyspace元数据删除,真正的删除会在后续异步操作)expire key 5 /5秒中后过期ttl key /查看还
2021-11-21 12:42:35
477
原创 Scala流程控制
一、单分支基本语法if (条件表达式) {执行代码块}说明:当条件表达式为 ture 时,就会执行{ }的代码。二、双分支if (条件表达式) {执行代码块 1} else {执行代码块 2}三、多分支if (条件表达式 1) {执行代码块 1}else if (条件表达式 2) {执行代码块 2}……else {执行代码块 n}四、代码示例 if (age <= 6) { println("童年") } else if (age &
2021-11-07 10:55:39
190
原创 Scala数据类型
一、数据类型(1)Scala中一切数据都是对象,都是Any的子类。(2)Scala中数据类型分为两大类:数值类型(AnyVal)、 引用类型(AnyRef),不管是值类型还是引用类型都是对象。(3)Scala数据类型仍然遵守,低精度的值类型向高精度值类型,自动转换(隐式转换)。(4)Scala中的StringOps是对Java中的String增强(5)Unit:对应Java中的void,用于方法返回值的位置,表 示方法没有返回值。Unit是一个数据类型,只有一个对象 就是()。Void不是
2021-10-31 12:41:06
1778
原创 Scala与Java的异同
一、数据类型1.Java数据类型Java基本类型:char、byte、short、int、long、float、double、boolean Java引用类型:(对象类型)Java基本类型的包装类:Character、Byte、Short、Integer、Long、Float、Double、Boolean由于Java有基本类型,而且基本类型不是真正意义的对象,即使后面产生了基本类型的包装类,但是仍然存在基本数据类型,所以Java语言并不是真正意义上的面向对象。注意:Java中基本类型和引用
2021-10-31 11:46:55
989
原创 Scala文件读取、写入
一、代码示例import java.io.{File, PrintWriter}import scala.io.Sourceobject FileIO { def main(args: Array[String]): Unit = { //从文件中读取数据 Source.fromFile("src/main/resources/test.txt").foreach(print) //将数据写入文件 val writer = new PrintWriter(ne
2021-10-31 11:22:24
739
原创 Scala键盘输入
1.语法要接收用户输入的数据,就可以使用键盘输入语句来获取StdIn.readLine()、 StdIn.readShort()、 StdIn.readDouble()、StdIn.readInt2.示例object Test4_StdIn { def main(args: Array[String]): Unit = { //输入信息 println("请输入信息:") val name:String = StdIn.readLine() println(
2021-10-29 07:48:09
3112
原创 Scala字符串输出
( 1)字符串,通过+号连接val name: String = "lili"val age:Int = 22println(age + "岁的" + name) //22岁的Lili(1.1) * 用于将字符串复制多次拼接println(name * 3) //LiliLiliLili(2) printf 用法:字符串,通过%传值printf("%d岁的%s",age,name) //22岁的Liliprintf 格式化打印>( 3.
2021-10-28 21:40:48
607
原创 Scala标识符命名规范
一、什么是标识符Scala对各种变量、方法、函数等命名时使用的字符序列称为标识符。即:凡是自己可以起名字的地方都叫标识符。二、标识符命名规范(1)以字母或者下划线开头,后接字母、数字、下划线 val hello:String = "" var Hello123 = "" val _abc = 123 //val h-b = "" //错误,找不到- //val 123abc = 123 //不能以数字开头(2)以操作符开头,且只包含操作符( +
2021-10-28 20:41:45
877
原创 Scala变量和常量
1.Java变量和常量java变量变量类型 变量名称 = 初始值例: int a = 1java常量final 常量类型 常量名称 = 初始值例:final int b = 2java是把常量看成一种特殊的变量(在变量前加了final修饰符)2.Scala变量和常量变量基本语法var 变量名 [:变量类型] = 初始值例:var i:Int = 1常量基本语法(能用常量的地方不用变量)val 常量名 [:常量类型] = 初始值例:val 常量名 [:常量类型
2021-10-27 22:26:01
105
原创 Scala注释与代码规范
一、注释Scala 注释使用和 Java 完全一样( 1)单行注释: //( 2)多行注释: /* */( 3)文档注释: /****/ 文档注释要在一个方法或类前边进行注释```shellpackage test1/*object 关键字声明一个单例对象(伴生对象)*/object HelloWorld { /* main 方法:从外部可以直接调用执行的方法 def 方法名称(参数名称:[参数类型]):方法返回类型={方法体} []泛型 unit 返回值为空
2021-10-26 07:55:34
1284
原创 IDEA新建Scala项目
1.新建maven项目2.添加scala插件3.新建scala文件夹4.将scala文件夹作为test source root5.添加Scala框架支持
2021-10-24 18:27:18
243
原创 Scala学习笔记—安装
1.下载Windows版本的scala下载链接,选择所需版本2.解压及配置环境变量3.cmd端测试scala安装是否成功C:\Users\Administrator>scalaWelcome to Scala 2.12.11 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_212).Type in expressions for evaluation. Or try :help.scala>...
2021-10-24 17:57:44
172
原创 Hive常用日期处理函数
1.date_format(输出指定格式日期)hive(myhive)>select date_format('2021-10-18','yyyy-MM');2021-10hive(myhive)>select date_format('2021-10-18','yyyy');20212.date_add(加减日期)hive(myhive)>select date_add('2021-10-18',-1);2021-10-17hive(myhive)>select
2021-10-18 21:13:12
548
原创 Docker安装Tomcat
1.上传tomcat、jdk安装包(tar.gz)[root@docker software]# lsapache-tomcat-9.0.22.tar.gz server-jre-8u73-linux-x64.tar.gz[root@docker software]# touch readme.txt2.编写dockefile文件官方名字为Dockerfile,build会自动寻找这个文件,不需要指定-f。vi DockerfileFROM centosMAINTAINER fan
2021-10-17 21:05:31
80
原创 Shell脚本(单引号,双引号,反引号)区别
1)在/home/test创建一个test.sh文件[hadoop@hadoopsc01 test]$ vi test.sh#在文件中添加如下内容#!/bin/bashdo_date=$1echo '$do_date'echo "$do_date"echo "'$do_date'"echo '"$do_date"'echo `date`2)查看执行结果[hadoop@hadoopsc01 test]$ test.sh 2021-10-14$do_date2021-10-14'
2021-10-14 21:40:43
253
原创 Docker命令--cmd和entrypoint区别
cmd #指定容器启动时要运行的命令,只有最后一个命令会生效,原来的命令可被后追加的命令替代entrypoint #指定这个容器启动时要运行的命令,可追加命令一、测试cmd命令1.1创建测试文件vi dcf-cmd-test内容如下:FROM centosCMD [“ls”,"-a"]1.2创建镜像[root@docker ~]# docker build -f dcf-cmd-test -t ctest .Sending build context to Dock
2021-10-09 21:57:38
142
原创 hive动态分区
一、动态分区理解 在实际场景,从数仓ods用户信息表(拉链表)中,按某个字段()二、hive动态分区参数设置(1)开启动态分区功能(默认 true,开启)hive.exec.dynamic.partition=true(2)设置为非严格模式(动态分区的模式,默认 strict,表示必须指定至少一个分区为静态分区,nonstrict 模式表示允许所有的分区字段都可以使用动态分区)hive.exec.dynamic.partition.mode=nonstrict(3)在所有执行 MR
2021-10-09 07:52:54
889
原创 spark离线数仓-hive on spark模式常见错误
本篇记录搭建spark离线数仓遇到的错误.1.org.apache.hadoop.hive.ql.parse.SemanticException:Failed to get a spark session: org.apache.hadoop.hive.ql.metadata.HiveException: Failed to create Spark client for Spark session 01271ac4-3717-4f60-bf27-d2c5899c7ba0...
2021-10-08 07:41:40
1244
原创 大数据开发工程师学习路线
大数据开发的学习路线,先后顺序大概是:Linux常用命令、Shell语言、Java基础、MySQL、Hadoop、YARN、MapReduce、Flume、Kafka、HBase、Hive、Spark、Flink。以上大数据技术组件是比较主流的,可做参考。
2021-07-03 12:26:28
1206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人