自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

原创 LeetCode150. 逆波兰表达式求值

根据逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意 两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。

2022-09-20 15:20:52 337

原创 LeetCode1047. 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。

2022-09-19 22:07:41 301

原创 LeetCode 20.有效的括号

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。来源:力扣(LeetCode)示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false。

2022-09-18 19:04:09 318

原创 数组的二分查找法(折半查找)

有序数组的二分查找。力扣:在排序数组中查找元素的第一个和最后一个位置。

2022-07-07 19:49:14 661

原创 【蓝桥杯】

资源限制时间限制:1.0s 内存限制:512.0MB问题描述  输入一个正整数n,输出n!的值。  其中n!=123*…*n。算法描述  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。  将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。  首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。输入格式  输入包含一个正整数n,n<=1

2022-03-09 15:18:41 92

原创 调整数组顺序使奇数位位于偶数前面(Java解法)

1.题目描述调整数组顺序使奇数位于偶数前面:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。要求时间复杂度为O(n)。2. 解题思路可以定义两个指针,一个指针指向数组的第一个元素,一个指针指向数组的最后的一个元素,然后分别移动收尾指针,当首指针指向数组中第一个偶数,尾指针指针指向第一个奇数时,两位置上的元素进行交换,直到首尾指针相等时,说明遍历完成。如图:3.程序代码public class test1 { /* 奇数在前 偶数在后*

2022-03-08 13:17:15 888

原创 Java高级之反射机制

1 java.lang.Class类Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。要想解剖一个类,必须先要获取到该类的Class对象。而剖析一个类或用反射解决具体的问题就是使用相关API(1)java.lang.Class(2)java.lang.reflect.*。所以,Class对象是反射的根源。1.1 哪些类型可以获取Class对象所

2021-12-08 19:30:48 462

原创 Java中枚举的应用

1 概述枚举是 Java 中一种特殊的类,它可以定义固定数量的枚举实例,例如: 性别、交通信号灯、季节等等。2 作用一个方法接收的参数是固定范围之内的时候,那么即可使用枚举类型。3 格式enum 枚举名 { 第一行都是罗列枚举实例,这些枚举实例直接写大写名字即可。}4 入门案例(1)定义枚举类public enum Gender { //男,女 MALE,FAMALE; }(2)定义Person类public class Person

2021-12-08 18:07:27 325

原创 Java高级之IO流

1 IO流对象IO : Input Output IO作用是将数据从一个设备中流入到另一个设备。数据文件,从磁盘中流向内存中 , 从磁盘中流向移动存储设备 , 从一台计算机流向另一台计算机。一切都是字节 : 任何数据文件都是字节组成, 字节是计算机中最小的存储单元 (Java源码,游戏,音乐,电影)。2 IO流对象的分类2.1 按照操作的文件类型分类文本类型文件 – 选择流对象字符流什么是文本文件 : 使用文本工具,记事本,notepad++ ,editplus 打开文件后人类可以直接

2021-12-08 16:13:45 468

原创 Java基础之File类的使用

1 File类的构造方法File (String pathname)传递字符串的路径名File(String parent,String child)传递字符串的父路径,字符串的子路径File(File parent,String child)传递File类型的父路径,字符串的子路径2 File类的创建方法boolean createNewFile()创建一个文件,文件路径写在File的构造方法中boolean mkdirs()创建目录,目录的位置和名字写在File的构造方法中3 File类的

2021-12-08 10:46:11 143

原创 Spark Sql编程实践

1 DataFrame编程代码中创建DataFrame//1.先创建SparkSessionval spark = SparkSession.builder() .appName("CreateDF").master("local[2]") .getOrCreate()//2.通过SparkSession创建DFval df = spark.read.json("D:/users.json")//3.对DF做操作(sql)//3.1 创建临时表df.createOrReplaceT

2021-12-07 16:39:46 1026

原创 Spark Sql概述

Spark sql概述1.1 什么是Spark sqlSpark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。与基本的 Spark RDD API 不同, Spark SQL 的抽象数据类型为 Spark 提供了关于数据结构和正在执行的计算的更多信息。Spark SQL 它提供了2个编程抽象, 类似 Spark Core 中的 RDD1. DataFrame2. DataSet1.2 Spark SQL 的特点1. 2.1 Integrate

2021-12-07 16:30:32 1785

原创 Spark中累加器和广播遍历的使用

1 共享变量问题为什么a的输出结果为0而不是3或6?正常情况下, 传递给 Spark 算子(比如: map, reduce 等)的函数都是在远程的集群节点上执行, 函数中用到的所有变量都是独立的拷贝,这些变量被拷贝到集群上的每个节点上, 这些变量的更改不会传递回驱动程序,支持跨 task 之间共享变量通常是低效的, 但是 Spark 对共享变量也提供了两种支持。(1)累加器(2)广播变量若要让a来计数,则需要用到累加器。2 累加器的使用累加器用来对信息进行聚合,通常在向 Spark 传递函

2021-12-07 16:24:54 357

原创 Spark Job的划分

1 Spark job划分流程由于 Spark 的懒执行, 在驱动程序调用一个action之前, Spark 应用不会做任何事情,针对每个 action, Spark 调度器就创建一个执行图(execution graph)和启动一个 Spark job。每个 job 由多个stages 组成, 这些 stages 就是实现最终的 RDD 所需的数据转换的步骤. 一个宽依赖划分一个 stage,每个 stage 由多个 tasks 来组成, 这些 tasks 就表示每个并行计算, 并且会在多个执行器上执行

2021-12-07 16:20:05 1698

原创 Spark中RDD的依赖关系

RDD 之间的关系可以从两个维度来理解: 一个是 RDD 是从哪些 RDD 转换而来, 也就是 RDD 的 parent RDD(s)是什么; 另一个就是 RDD 依赖于 parent RDD(s)的哪些 Partition(s). 这种关系就是 RDD 之间的依赖。依赖 有 2 种策略:窄依赖(transformations with narrow dependencies)宽依赖(transformations with wide dependencies)宽依赖对 Spark 去评估一个 t

2021-12-07 16:16:40 1583

原创 Spark Core之Spark的序列化

1 RDD 中函数的传递为什么要进行序列化操作?因为类的对象是在driver端创建,而对象的方法是在executor上执行,一般情况它们不在同一个节点上,因此需要把driver端的对象序列化到executor端,否则程序会报错。进行 Spark 进行编程的时候, 初始化工作是在 driver端完成的, 而实际的运行程序是在executor端进行的. 所以就涉及到了进程间的通讯, 数据是需要序列化的。2 传递函数import org.apache.spark.rdd.RDDimport org.a

2021-12-07 16:13:13 1407

原创 Java多线程的使用详解

1 线程的基本概念1.1 进程进程的概念 : 应用程序运行的时候进入到内存,程序在内存中占用的内存空间(进程)。1.2 线程(Thread)在内存和CPU之间,建立一条连接通路,CPU可以到内存中取出数据进行计算,这个连接的通路,就是线程。一个内存资源 : 一个独立的进程,进程中可以开启多个线程 (多条通路)。并发: 同一个时刻多个线程同时操作了同一个数据并行: 同一个时刻多个线程同时执行不同的程序多线程与多进程的区别:本质的区别在于每个进程都拥有自己的一套变量,而线程则共享数据。2

2021-12-07 15:53:24 2857

原创 Spark Core之RDD编程(内容超详细)

2.1 得到RDD(1)从数据源a:外部数据源 :文件、数据库、hive…b:从scala集合得到:带序列的集合都可以得到RDD2.2 RDD的转换在 RDD 上支持 2 种操作:transformation:从一个已知的 RDD 中创建出来一个新的 RDD 例如: map就是一个transformation.action:在数据集上计算结束之后, 给驱动程序返回一个值根据 RDD 中数据类型的不同, 整体分为 2 种 RDD:Value类型Key-Value类型(其实就是存一个二维

2021-12-06 15:54:18 893 1

原创 Spqrk Core之RDD概述

一、RDD概述1.1 RDD 概述1.1.1 什么是 RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。在代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。1.1.2 RDD 的 5 个主要属性(property)A list of partitions多个分区. 分区可以看成是数据集的基本组成单位.对于 RDD 来说, 每个分区都会被一个计算任务处理, 并决定了并行计算的粒度.用户

2021-12-06 15:37:32 341

原创 Spark运行模式详解

二、Spark运行模式2.1 local模式Local 模式就是指的只在一台计算机上来运行 Spark.通常用于测试的目的来使用 Local 模式, 实际的生产环境中不会使用 Local 模式.2.2 Spark 核心概念介绍2.2.1 MasterSpark 特有资源调度系统的 Leader。掌管着整个集群的资源信息,类似于 Yarn 框架中的 ResourceManager,主要功能:监听 Worker,看 Worker 是否正常工作;Master 对 Worker、Applicatio

2021-12-06 15:22:00 511

原创 Spark概述,带你快速了解Spark

一、spark概述1.1什么是sparkSpark 是一个快速(基于内存), 通用, 可扩展的集群计算引擎1.2 特点1.2.1 快速与 Hadoop 的 MapReduce 相比, Spark 基于内存的运算是 MapReduce 的 100 倍.基于硬盘的运算也要快 10 倍以上.Spark 实现了高效的 DAG 执行引擎, 可以通过基于内存来高效处理数据流。1.2.2 易用Spark 支持 Scala, Java, Python, R 和 SQL 脚本, 并提供了超过 80 种高性能的算

2021-12-06 15:17:42 1025

原创 Scala之模式匹配

二、模式匹配函数编程语言的标配,类似于java的switch2.1 基本使用要匹配的值 match{ case 选项 => //代码 case 选项 => //代码 } eg: object PatternDemo1 { def main(args: Array[String]): Unit = { val a:Int = 10 val b:Int = 20 val op:String = Std

2021-12-06 15:09:12 226

原创 Scala之sorted排序的使用

一、sort排序1.1 sorted(1)简单数据结构val list1 = List(30, 50, 70, 60, 10, 20)println(list1.sorted) (2)复杂的数据结构解决方法:1)让排序的类型的有自己排序的功能 (注:该方法有局限性,不推荐)重写Comparable方法object sort { def main(args: Array[String]): Unit = { val list2 = List(new User(10, "a

2021-12-06 15:05:36 1456

原创 力扣——截断句子

1.题目描述句子是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。例如,“Hello World”、“HELLO” 和 “hello world hello world” 都是句子。给你一个句子 s​​​​​​ 和一个整数 k​​​​​​ ,请你将 s​​ 截断 ​,​​​使截断后的句子仅含 前 k​​​​​​ 个单词。返回 截断 s​​​​​​ 后得到的句子。来源:力扣(LeetCode)链接:https://leetcode

2021-12-06 14:58:48 252

原创 Hive中常用的函数

6.1 系统内助函数1)查看系统自带的函数hive> show functions;2)显示自带的函数的用法hive> desc function upper;3)详细显示自带的函数的用法hive> desc function extended upper;6.2 常用内置函数6.2.1 空字段赋值1)函数说明NVL:给值为 NULL 的数据赋值,它的格式是 NVL( value,default_value)。它的功能是如果 value 为 NULL,则 NVL

2021-12-06 14:44:56 374

原创 Hive之分区表和分桶表

5.1 分区表分区表实际上就是对应一个 HDFS 文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive 中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过 WHERE 子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。1.创建分区表%hivecreate table dept_xjl(deptno int,dname string,loc string)partitioned by (day string)row format de

2021-12-04 13:12:22 337

原创 Hive之基本查询(Select...From)

4.1 全表和特定列查询原始数据10 ACCOUNTING 170020 RESEARCH 180030 SALES 190040 OPERATIONS 1700emp:7369 SMITH CLERK 7902 1980-12-17 800.00 207499 ALLEN SALESMAN 7698 1981-2-20 1600.00 300.00 307521 WARD SALESMAN 7698 1981-2-22 1250.00 500.00 3075

2021-12-04 13:06:34 2233

原创 Hive之DML 数据操作

3.1数据导入3.1.1 向表中装载数据(Load)(1)语法load data [local] inpath ‘数据的 path’ [overwrite] into tablestudent [partition (partcol1=val1,…)];load data:表示加载数据local:表示从本地加载数据到 hive 表;否则从 HDFS 加载数据到 hive 表inpath:表示加载数据的路径overwrite:表示覆盖表中已有数据,否则表示追加into table:表示加载到

2021-12-04 12:51:33 308

原创 Hive之DDL 数据定义

2.1 创建数据库CREATE DATABASE [IF NOT EXISTS] database_name1.创建数据库hive (default)> create database db_hive;2.避免要创建的数据库已经存在错误,增加 if not exists 判断。(标准写法)hive (default)> create database if not exists db_hive;3.创建一个数据库,指定数据库在 HDFS 上存放的位置hive (default)&g

2021-12-04 12:42:17 989

原创 Hive中的数据类型

1.1 基本数据类型对于 Hive 的 String 类型相当于数据库的 varchar 类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储 2GB 的字符数。1.2 集合数据类型Hive 有三种复杂数据类型 ARRAY、MAP 和 STRUCT。ARRAY 和 MAP 与 Java 中的 Array和 Map 类似,而 STRUCT 与 C 语言中的 Struct 类似,它封装了一个命名字段集合,复杂数据类型允许任意层次的嵌套。...

2021-12-04 12:33:13 1531

原创 三、YARN

1 YARN简介Apache Hadoop YARN(Yet Another Resource Negotiator)是Hadoop的子项目,为分离Hadoop2.0资源管理和计算组件而引入。YRAN具有足够的通用性,可以支持其它的分布式计算模式。2 YARN的架构剖析类似HDFS,YARN也是经典的“主从(master/slave)架构”。YARN服务由一个ResourceManager(RM)和多个NodeManager(NM)构成。ResourceManager为主节点(maste

2021-12-04 12:30:16 739

原创 二、MapReduce核心思想及编程模型

1.mapreducede 定义MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。2. mapreduce的核心思想MapReduce思想在生活中处处可见。或多或少都曾接触过这种思想。MapReduce的思想核心是“分而治之”,适用于大量复杂的任务处理场景(大规模数据处理场景)。即使是发布过论文实现分布式计

2021-12-04 12:26:04 816

原创 一、DataNode工作机制

浅谈Hadoop中DataNode的工作机制。

2021-12-04 12:24:01 304

原创 Java基础之集合篇(内容超详细,带你轻松搞懂List、Set和Map的使用)

Java集合的一个小结,包括Colletion和Map等。

2021-12-04 12:14:33 1763

原创 Java中的异常处理机制

1.1 概念异常(Exception 也称例外)就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序• 所需文件找不到• 网络连接不通或中断• 算术运算错 (被零除…)• 数组下标越界• 装载一个不存在的类或者对null对象操作• 类型转换异常…Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws1.2 异常处理try-catch• 情况1:try块中代码没有出现异常• 不执行catch块代码,执行catch块后

2021-12-04 11:27:29 129

原创 Java高级之使用FileInputStream和FileOutputStream读写非文本文件

一、概念InputStream(输入流):输入流是用来读入数据的。OutputStream(输出流):输出流是用来写出数据的。write(byte b[], int off, int len):写入字节数组中的len字节到输出流。参数中数组b[]就是待写入的字节数组(不一定全部写入),从第offset位开始写入,每次写入的长度为len。二、利用读取字节流实现图片的的复制public class fileStreamTest { public static void main(String

2021-04-21 09:58:53 225

原创 Java高级之文件输入输出流

Java IO原理输入input:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。输出output:将程序(内存)数据输出到磁盘、光盘等存储设备中。流的分类:按操作数据单位不同分为:字节流(8 bit),字符流(16 bit);按数据流的流向不同分为:输入流、输出流;按流的角色不同分为:节点流,处理流。说明点:数据的读入 read():返回读入的一个字符。如果到达文件末尾,返回-12.异常的处理:为了保证流资源一定可以执行关闭操作。需要使用try-catch-finall

2021-04-20 21:58:48 144

原创 Java高级之File类的使用

1.File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)2.File类声明在java.io包下3.File的常用构造器public File(String pathname):以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。绝对路径:是一个固定的路径,从盘符开始;相对路径:是相对于某个位置开始。路径分隔符:windows:// unix:/public File(String

2021-04-18 22:50:04 146

原创 Java高级之Map接口

一、Map:双列数据,存储key-value对的数据 HashMap:作为Map的主要实现类 LinkedHashMap:保证在遍历map元素时按照添加的顺序实现遍历。 原因:在原有的HashMap的底层结构基础上,添加了一对指针,指向前一个和后一个元素。 对于频繁的遍历操作,此类执行效率高于HashMap。 TreeMap:保证按照添加的key-value对进行排序,实现排序遍历。此时考虑key的

2021-04-15 16:55:44 88

原创 Java高级之SimpleDateFormat类

SimpleDateFormat类的使用:对日期Date类格式化和解析两个操作:SimpleDateFormat的实例化SimpleDateFormat sdf = new SimpleDateFormat();1.格式化:日期—>字符串//格式化:日期—>字符串Date date1 = new Date();String format = sdf.format(date1);System.out.println(format);2.解析:格式化的逆过程,字符串—>日

2021-04-14 10:46:21 102

空空如也

空空如也

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

TA关注的人

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