自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 scala递归的方法快速解析Json数据

scala递归的方法快速解析Json数据思路:既然可以得到keyset() ,为什么不根据keyset去进行遍历,拿到所有的数据?主要难点在于我们不知道我们拿到的key去解析成一个对象还是去解析成一个字符串,我在这里用到了模式匹配,以下提供代码以供参考(Array类型的我没有处理,如果要处理根据业务去进行相应的处理):import java.utilimport com.alibaba.fastjson.{JSON, JSONObject}import org.apache.spark.rdd

2021-09-29 17:24:49 18

原创 spark streaming案例总结

spark streaming案例总结1、读取N分钟前文件def readFile(bachTime: Int, big_time: Int, frame: DataFrame, template_path: String, spark: SparkSession) = { val nowMinute: String = getNowTime()._3 val yu_time = nowMinute.toInt % bachTime var file_df: Data

2021-09-14 10:44:10 11

原创 spark streaming 读取kafka数据

spark streaming 读取kafka数据1、程序入口 val spark = SparkSession.builder().appName(this.getClass.getName).master("local[*]").getOrCreate() import spark.implicits._ val sc = spark.sparkContext val ssc = new StreamingContext(spark.sparkContext, Minutes

2021-09-14 10:17:41 21

原创 git常用命令

git命令git pull 拉取更新 (第一步)git add 文件路径名称(第二步)git commit -m ‘提交文件注释说明’(第三步)git push 上传远程代码并合并(第四步)(02与03机器上再 spark下ak下:git pull (第五步)uk 流)备注 : 第五步忽略,自用...

2021-09-03 16:06:54 14

原创 python自动更换电脑桌面壁纸

首先找图片的来源:http://api.btstu.cn/sjbz/?lx=meizi&format=images这是一个随机返回图片的api(搏天api)具体代码如下:(只需更改文件存储位置即可)import timeimport uuidimport requestsimport win32apiimport win32conimport win32guiurl = 'http://api.btstu.cn/sjbz/?lx=meizi&format=images

2021-07-25 21:50:10 51 1

原创 hive上的小文件使用spark进行合并

hive上的小文件使用spark进行合并引言:我们的一些实时处理的文件再不同批次下生成的文件大小不一致,有时会产生大量的小文件,对于我们后期的数据处理影响极大,因此需要将小文件合并再save成大小均为128M的文件更为合适。原理:首先读取该目录下的文件大小 val fs = FileSystem.get(sc.hadoopConfiguration) val dirSize = fs.getContentSummary(new Path(lastInputPath)).getLength

2021-07-22 19:18:01 61

原创 Kafka-分布式消息队列

结构图:一、组件1)Producer :消息生产者,就是向kafka broker发消息的客户端;2)Consumer :消息消费者,从kafka broker取消息的客户端;3)Topic :可以理解为一个队列(就是同一个业务的数据放在一个topic下);4)Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的consumer)和单播(发给任意一个consumer)的手段。一个topic可以有多个CG。topic的消息会复制(不是真的复制,是概念上

2021-04-06 20:21:35 27

原创 hive案例-- 求连续N天登录天数

数据:A 2020-01-01A 2020-01-02A 2020-01-04A 2020-01-05A 2020-01-06A 2020-01-07A 2020-01-09A 2020-01-10B 2020-01-01B 2020-01-02B 2020-01-04B 2020-01-05B 2020-01-06B 2020-01-07B 2020-01-09B 2020-01-10建表:create table time(`id` string,`data`

2021-03-27 14:20:14 56

原创 spark-mysql的读写

一、读mysql1、format格式val personDFS: DataFrame = spark.read .format("jdbc") .option("url", "jdbc:mysql://localhost:3306/indo") .option("user", "root") .option("password", "root") .option("dbtable", "person") .load() pe

2021-03-23 20:21:45 27

原创 scala元组

1、定义:元组可以装着多个不同类型的值,最多可以放22个元素2、定义一个元组val t =(1,2.5,true,"abc")3、获取元组中的值,元组脚标从1开始,格式 元组名._脚标val t =(1,2.5,true,"abc")t._4t._14、通过productArity来获取元组的长度val t =(1,2.5,true,"abc")println(t.productArity)5、通过productElement来获取元组的元素,下标从0开始val t =(1,2

2021-03-11 19:52:43 18

原创 Scala数组的定义和使用

一、数组的定义:1、不可变数组的定义①、val arr=new Array[Int](5) 定义一个长度为五的定长数组②、val arr= Array[Int](1,4,5,6,7)给定泛型和内容的定长数组③、val arr3=Array(1,3,true,"hello",3.5,2L) 不给泛型给内容的定长数组2、可变数组的定义前提:先导包import scala.collection.mutable._①、val arr=new ArrayBuffer[Int]() new 一个Arr

2021-03-11 19:42:28 228

原创 Scala循环的使用

一、while 循环(类似于java)var i=1while (i<=10){ i+=1}println(i)(注意:scala中没有 i++、i-- 可以 i+=1、i-=1)二、for循环(与java差别较大)1、三种定义方法①、to关键字(左右闭区间)for(i<- 1 to 10){ println(i)}②、until关键字(左闭右开)for(i<- 1 until(10)){ println(i)}③、Range关键字A:Ran

2021-03-10 19:45:46 55

原创 Scala函数及方法的定义和使用

一、方法的定义:1、(不定义返回值类型)def 方法名(参数名:参数类型,参数名:参数类型)={方法体}def add(a:Int,b:Int)={a*b}println(add(2,3))2、(定义返回值类型)def 方法名(参数名:参数类型,参数名:参数类型):返回值类型={方法体}def jia(a:Int,b:String):String={ a+b}println(jia(1,"lisi"))二、函数的定义和使用1、(不定义返回值类型)val 函数名=(参数名:参数类型,

2021-03-10 19:29:34 65

原创 HBase博客案例

一、 需求分析1、微博内容的浏览,数据库表设计2、用户社交体现:关注用户,取关用户3、拉取关注的人的微博内容二、 所需要的表三、代码pom.xml <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>RELEASE</version>

2020-12-31 17:14:02 49

原创 hbase常用命令

1、建表create 'studut','info'student为表名,info为列族2、插入数据put 'student','1001','info:name','zhangsan'用put关键字,在student表info列族插入key为1001的行,列为name的value 为’zhangsan’要指定表、列族、行、列3、查看数据①、查看一行get 'student','1001'②、查看具体的某一个值get 'student','1001','info:name'③

2020-12-28 16:59:22 51

原创 hive常用函数

一、类型(1)UDF(User-Defined-Function)一进一出 select upper(“DD”) from emp;(2)UDAF(User-Defined Aggregation Function)聚集函数,多进一出类似于:count/max/min(3)UDTF(User-Defined Table-Generating Functions)一进多出二、常用函数(1)查看1.查看系统自带的函数hive> show functions;2.显示自带的函数的

2020-12-24 13:29:35 24

原创 hive--数据仓库常用命令

hive–数据仓库常用命令一、Hive实际操作(1)启动hivebin/hive(2)显示数据库hive> show databases;(3)使用default数据库hive> use default;(4)显示default数据库中的表hive> show tables;(5)删除已创建的student表hive> drop table student;(6)创建student表, 并声明文件分隔符’\t’hive> create tab

2020-12-23 22:27:41 115

原创 hadoop案例(三)--WritableComparable排序案例实操

对案例二话费汇总案例汇总后的结果进行处理,按照总花费升序排序输出。分析:把程序分两步走,也就是要写两个mapreduce程序,第一个用于统计每个用户的总话费(已经在案例2.4实现),第二个mapreduce程序把结果排序后输出即可。要想利用框架进行排序,要做两步:1:把要排序的字段置于mapper的keyout,因为我们的总花费位于bean中,因此,要让bean位于mapper的keyout。2:让bean实现WritableComparable接口,重写compareTo方法,通过该方法告知框架

2020-12-19 11:07:01 76 1

原创 hadoop案例(二)--统计每一个手机号全年的总话费

统计每一个手机号全年的总话费(注意,虚拟网包月费属于赠送费,不计入在内)。数据准备:流程:(1)读取一行数据,切分字段;(2)抽取手机号、套餐基本费、语音通信费、短信彩信费、流量费;(3)以手机号为key,bean对象为value输出,即context.write(手机号,bean)。Reduce阶段:(1)累加套餐基本费、语音通信费、短信彩信费、流量费得到总花费;(2)实现自定义的bean来封装流量信息,并将bean作为map输出的key来传输;(3) MR程序在处理数据的过程中会对数

2020-12-19 10:47:35 74 1

原创 Hadoop案例(一)--在给定的文本文件中统计输出每一个单词出现的总次数

要统计的文件原型:处理后的文件:按照mapreduce编程规范,分别编写Mapper,Reducer,Driver(1)编写mapper类import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;import java.io.IOEx

2020-12-19 10:15:09 382 2

原创 linux的常用命令(超详细、超全)

一、配置主机名1、查看主机名字:hostname2、改主机名字:vi /etc/sysconfig/networkNETWORKING=yesNETWORKING_IPV6=noHOSTNAME= name(根据自己实际情况改)保存退出并重启设备,重启后,查看主机名,已经修改成功二、修改映射vim /etc/hosts格式:ip 主机名如 192.168.1.10 linux001保存退出可以直接 ping linux001三、防火墙**①、**service iptab

2020-12-11 22:14:41 398 1

原创 linux 根目录下各个文件的作用

**linux 根目录下各个文件的作用**Linux每个目录都有自己约定俗成的用处,或者说Linux的不同文件分门别类地放到了专门的文件夹,虽然Linux没有强制性的要求我们必须按照这些规定放置文件,但是为了方便起见,还是遵守约定的好。1、/bin:是Binary的缩写,这个目录存放着系统必备执行命令,比如ls、cat2、/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。3、/dev:Device(设备)的缩写,该目录下存放的是Linu

2020-12-11 21:27:12 59

原创 java.lang.NoSuchMethodError: org.springframework.dao.support.DataAccessUtils.nullableSingleResult(Lj

出现这样的报错java.lang.NoSuchMethodError: org.springframework.dao.support.DataAccessUtils.nullableSingleResult(Ljava/util/Collection;)Ljava/lang/Object;是因为Spring相关的jar包版本的问题,解决办法,把spring相关的jar包改成统一的版本。(建议在加载spring相关的jar时,就用统一的版本,可能有时候不会出错,为了避免此类的错误,还是改成一样版本的)

2020-12-01 11:03:30 98

原创 利用form表单上传图片,图片保存到本地,得到图片名字(后期可以将图片名字存进数据库)

利用form表单上传图片,图片保存到本地,得到图片名字(后期可以将图片名字存进数据库)html部分:enctype=“multipart/form-data” 一定要加!<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><form actio

2020-11-29 21:11:40 738 1

原创 基于调度优先的排班系统

基于调度优先的排班系统项目:学校有一个值班室,需要一天四班,一班两个人,一周值五天班。一个组织的学生需要为这个值班室值班,现要求,在学生无课的情况(不同班级,无课时间不同)下一周一人最多值两天班。调度优先算法原理讲解:收集所有学生的无课表存入数据库,一天四班 x五天,需要20个班次,根据每班的无课人数进行升序排序,先对人数最少的班次进行排班,每排一个人要先对其查重处理,如果已经排过两次了,就跳过,如果不够两次,则写入数据库中的值班表中。接着、排数据库中这个班的下一个人,直至这个班次够两个人或者数据库中这

2020-11-20 16:50:45 395

原创 java-jdbc 数据库连接技术

JDBC:Java DataBase Connectivity(Java数据库连接), JDBC是Java访问数据库的标准规范。用于执行SQL语句的Java API(Java语言通过JDBC可以操作数据库)。实现过程:1、导入MySQL针对jdbc提供的访问实现,驱动jar包2、书写jdbc的开发步骤代码(1) 、注册驱动、加载驱动(2) 、获取数据库连接、访问对象(3) 、获取到执行sql语句的语句平台 Statement PreparedStatement(4) 、执行sql语句exec

2020-11-18 19:25:12 20

原创 mysql 的sql语句 中篇 (单表查询)

mysql 的sql语句 中篇 (单表查询)假设有这样一个student表简单查询:使用*表示所有列语法:SELECT * FROM 表名;具体操作:SELECT * FROM student;结果如下:写出查询每列的名称语法:SELECT 字段名1, 字段名2, 字段名3, … FROM 表名; (写几个字段查出来几列数据,不写的不显示)具体操作:select id,name,age,sex,address from student;结果如下:别名查询:

2020-11-16 19:27:42 80

原创 Lambda表达的基本用法:

语法格式1:没有参数,也没有返回值() -> System.out.println(“Hello Lambda”);语法格式2:有一个参数,没有返回值(x) -> System.out.println(x * x);说明:如果只有一个参数,那么小括号可以省略语法格式3:有多个参数,没有返回值,格式和语法格式2相同(x, y) -> System.out.println(x + y);语法格式4:接口中需要重写的方法,方法内容有多句,需要给多句话加上大括号(x, y) -&g

2020-11-12 17:03:36 86 3

原创 白盒测试——单元测试

环境搭建:导jar包二、使用步骤1、把junit4.x的测试jar,添加到该项目中来;2、定义一个测试类(约定俗称的规则,非强制要求)测试类的名字: XxxTest,例如要测试MyMath类型,一般定义测试类的类名为MyMathTest3、在MyMathTest中编写测试方法public class Computer { public int add(int x,int y) { return x+y; } public int jian(int x,int y) {

2020-11-11 20:21:11 163

原创 java-实现多线程的两种方式

第一种,继承Threadpublic class A extends Thread{ @Override public void run() { for (int i = 0; i < 20; i++) { System.out.println("A____________"+i); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); }

2020-11-09 10:40:16 46

原创 定义一个方法,功能如下:给定一个字符串,返回该字符串的反转形式 例如:字符串为abcdef,返回结果为fedcba

定义一个方法,功能如下:给定一个字符串,返回该字符串的反转形式例如:字符串为abcdef,返回结果为fedcbapackage test7_2;import java.util.Arrays;public class Demo04 { public static void main(String[] args) { String str ="abcdef"; char[] cc =fanZhuan(str); String str1=""; for(char c:cc) {

2020-11-06 16:19:43 343

原创 键盘录入一个字符串,统计该字符串中的大写字母、小写字母、数字字符和其他字符分别有多少个 例如,键盘录入abcABCD12345!@#$%&,输出结果为:小写字母有3个,大写字母有4个,数字字符有5个,

键盘录入一个字符串,统计该字符串中的大写字母、小写字母、数字字符和其他字符分别有多少个例如,键盘录入abcABCD12345!@#$%&,输出结果为:小写字母有3个,大写字母有4个,数字字符有5个,其他字符有6个。package test7_2;import java.util.Scanner;public class Demo03 { public static void main(String[] args) { Scanner sc =new Scanner(System.

2020-11-06 16:18:51 1773

原创 (1)从键盘循环录入录入一个字符串,输入“end“表示结束 (2)将字符串中大写字母变成小写字母,小写字母变成大写字母,其它字符用“*“代替,并统计字母的个数 举例: 键盘录入:Hello

(1)从键盘循环录入录入一个字符串,输入"end"表示结束(2)将字符串中大写字母变成小写字母,小写字母变成大写字母,其它字符用"*"代替,并统计字母的个数举例:键盘录入:Hello12345World输出结果:hELLO*****wORLD总共10个字母package test7_2;import java.util.Scanner;public class Demo02 { public static void main(String[] args) { while(true

2020-11-06 16:17:02 246

原创 (1)定义数字字符串数组{“010“,“3223“,“666“,“7890987“,“123123“} (2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和

(1)定义数字字符串数组{“010”,“3223”,“666”,“7890987”,“123123”}(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出(3)如:010 是对称的,3223 是对称的,123123 不是对称的(4)最终打印该数组中对称字符串的个数提示:循环获取字符串的每一个字符,依次比较第一个和最后一个,第二个和倒数第二个。。。package test7_2;public class

2020-11-06 16:11:57 162

原创 产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的number.txt文件中

产生10个1-100的随机数,并放到一个数组中(1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。(2)把数组中的数字放到当前文件夹的number.txt文件中package zuoye1105;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.List;publi

2020-11-05 21:55:22 233

原创 代码实现以下需求 (1)有如下字符串“If you want to change your fate I think you must come to learn java

代码实现以下需求(1)有如下字符串"If you want to change your fate I think you must come to the shool to learn java"(用空格间隔)(2)打印格式:to=3think=1you=2//…(3)按照上面的打印格式将内容写入到D:\count.txt文件中(要求用高效流)package zuoye1105;import java.io.BufferedInputStream;import java.io.Buf

2020-11-05 21:52:37 289

原创 键盘录入一个字符串,表示一个文件夹路径,如果不是文件夹路径则提示重新录入 打印当前文件夹下,所有的大于20M的后缀名是.mp4的文件的绝对路径

键盘录入一个字符串,表示一个文件夹路径,如果不是文件夹路径则提示重新录入打印当前文件夹下,所有的大于20M的后缀名是.mp4的文件的绝对路径package zuoye1105;import java.io.File;import java.util.Scanner;public class Demo06 { public static void main(String[] args) { System.out.println("请输入文件夹路径"); Scanner sc = new

2020-11-05 21:37:32 188

原创 键盘录入一个文件夹路径,统计该文件夹下的各种后缀名的文件的个数 例如:.txt有10个,.java有30个......

键盘录入一个文件夹路径,统计该文件夹下的各种后缀名的文件的个数例如:.txt有10个,.java有30个…package zuoye1105;import java.io.File;import java.util.Arrays;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Demo02 { public static void main(String[] args

2020-11-05 21:32:44 115

原创 File查找文件夹下所有的文件或查找某类文件(如视频、图片)

File查找文件夹下所有的文件或查找某类文件(如视频、图片)package file;import java.io.File;import java.io.IOException;public class Demo1 { public static void main(String[] args) throws IOException { File f1 = new File("E:\\第一阶段"); PrintFileName(f1); } private static v

2020-11-05 13:11:39 534

原创 定义方法统计集合中指定元素出现的次数,如“a“ 3,“b“ 2,“c“ 1

有如下代码:List list = new ArrayList<>(); list.add("a"); list.add("a"); list.add("a"); list.add("b"); list.add("b"); list.add("c"); list.add("d"); list.add("d"); list.add("d"); list.add("d"); list.add("d"); System.out.println(frequency(list

2020-11-05 08:13:39 428

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除