自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (6)
  • 收藏
  • 关注

原创 HIVE UDF 空值转换(NULL 以及 空字符串)类似NVL+COALESCE

类似NVL,但是功能更强大。对于NULL以及空字符串都认为是空值,并依次取首个非空值。参数可多个。

2022-11-10 22:45:00 1849 1

原创 GenericUDF——Merge Map

Hive 开发UDF有两种接口:一种是 org.apache.hadoop.hive.ql.exec.UDF,这个接口主要是针对简单的数据类型(比如String、Integer等);另一个是 org.apache.hadoop.hive.ql.udf.generic.GenericUDF,GenericUDF可以针对复杂的数据类型(比如Array、Map、Struct等)进行处理,并且可以在函数开始之前和结束之后做一些初始化和关闭的处理操作。

2022-09-30 22:45:00 868

原创 文本相似度计算——HanLP分词+余弦相似度算法

通过余弦相似度算法来计算文本相似性。

2022-09-19 22:45:00 5096 2

原创 文本相似度计算——Dice Similarity Coefficient(Dice相似系数)+ 最长公共子序列(LCS)

最长公共子序列是一个典型的动态规划问题,本文首先通过推导状态转移方程式来计算最长公共子序列,然后通过Dice相似度算法来计算文本相似度。

2022-09-16 23:15:00 3819

原创 动态规划(Dynamic programming)详解

动态规划(Dynamic programming,简称DP)是一种将复杂问题分解成很多子问题,并将子问题的求解结果存储起来避免重复求解的一种算法。动态规划一般用来解决最优问题。而解决问题的过程,需要经历多个决策阶段。每个决策阶段都对应着一组状态。最后通过一组决策序列(动态转移方程),产生最终期望的最优解。能用动态规划解决的问题,需要满足三个条件:最优子结构,无后效性和子问题重叠。

2022-09-15 22:15:00 30126 4

原创 NLP自然语言处理简介

NLP自然语言处理简介

2022-09-10 17:15:00 16492 1

原创 Hive UDF array_struct_sort 对Array<Struct>进行排序

Hive UDF array_struct_sort 对Array进行排序array_struct_sort(array(struct1,struct2,...), string sortField):Returns the passed array struct, ordered by the given field.对所给的Array按sortField字段进行排序并返回。

2022-08-16 18:27:16 1170

原创 Hive UDAF collect_map

Hive UDAF collect_mapcollect_map(x,y):Returns a map of entries formed by taking x as the key and y as the value. Groups with duplicate keys will contain one entry. the value of the entry in indeterminat.返回以x为键,y为值形成的map。具有重复key的组将只包含一个条目,其值是不确定的。...

2022-08-16 17:24:45 1251

原创 大数据入门(五)YARN简介以及工作流程详解

Apache YARN(Yet Another Resource Negotiator,另一种资源协调者)是Hadoop的集群资源管理系统。YARN的核心思想是将资源管理和作业调度/监控的功能拆分为单独的守护进程——其中ResourceManager用来管理集群资源,NodeManager用来启动和监控容器。一、YARN相关概念解析Container(容器):是集群资源(包含内存、CPU、磁盘、网络等)的抽象和封装,一个Container就是一组分配的系统资源。 Job / Applicati.

2022-01-30 16:24:15 2421 1

原创 [Spark-SQL 2.1] create view as select中NVL函数异常

环境:Hive client (version 1.2.1) Spark version 2.1.1.2.6.1.0-129现有一测试表datadev.t_student,字段如下col_name data_type comment id string score int 此时,我们在Spark-SQL中执行以下命令,会报错。create view datadev.t_student_view as select NVL(id, ..

2021-12-20 17:03:44 1382

原创 HIVE SQL 聚合函数与 rows between / range between详解

一、rows between 与 range between 用法1. 相关关键词解析unbounded 无边界preceding 往前following 往后unbounded preceding 往前所有行,即初始行n preceding 往前n行unbounded following 往后所有行,即末尾行n following 往后n行current row 当前行语法(ROWS | RANGE) BETWEEN (UNBOUNDED | [num]) PRECEDI

2021-12-08 10:27:50 18051 2

原创 HIVE UDF —— matchNWords

最近因为业务需求,需要设计一个UDF去统计两个字符串中单词的匹配次数。其中单词(word)的定义是这样的:中文以单个字作为word,英文以是空格分割连续的一串字母作为word。一、第一步:分词** * Split String to Words. 英文以一个单词作为word, 中文以单个字作为word. * * @param src * @return ArrayList<String> */ public static A.

2021-12-07 14:26:59 1742

原创 Hive UDF<用户自定义函数>入门

一、简介Hive有三种类型的UDF:(普通)UDF、用户定义聚集函数(user-defined aggregate function,UDAF)以及用户定义表生成函数(user-defined table-generating function,UDTF)。UDF:操作作用于单个数据行,且产生一个数据行作为输出。大多数函数(例如数学函数和字符串函数)都属于这一类。 UDAF:接受多个输入数据行,并产生一个输出数据行。比如,COUNT和MAX函数。 UDTF:作用于单个数据行,且产生多个数据行(即

2021-12-03 10:19:29 1671

原创 大数据入门(四)MapReduce简介以及工作流程详解

MapReduce是一种并行编程模型,用于大规模数据集的并行运算,能够以一种可靠的,具有高容错能力的方式并行地处理TB级别以上的海量数据集。Map(映射)和Reduce(规约)是它的主要思想。Map是映射,负责数据的过滤分发,将原始数据转化成键值对;Reduce是合并,将具有相同key值的value进行处理后再输出新的键值对作为最终结果。为了让reduce可以并行处理map的结果,必须对map的输出进行一定的排序与分割,然后再交给对应的reduce,这个将map输出进行进一步整理并交给reduce的过.

2021-07-23 10:53:13 3230

原创 Antlr4入门(七)错误报告与恢复

ANTLR提供了优秀的错误报告功能和复杂的错误恢复机制,基于此,ANTLR生成的语法分析器能够自动地在遇到句法错误时产生丰富的错误信息,并且能够在大多数的情况下成功地完成重新同步(resynchronize)。这样的语法分析器甚至能够保证只为每个句法错误产生一条错误信息。一、错误处理入门...

2021-07-18 14:07:52 2330 1

原创 数据仓库之拉链表的设计以及实现

一、简介增量表: 有日期分区,存放增量数据,即新增量和变化量。 全量表: 无日期分区(每天覆盖更新),存放截止至当前,数据的最新的状态,所以无法记录数据的历史变化 快照表: 有日期分区,每天的数据都是全量的(无论有无变化),缺点是每个分区存储了许多重复的数据,浪费存储空间 拉链表: 拉链表是用来维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录二、应用场景拉链表适用于那些大数据量,并且在字段变化的比例和频率不大的情况下需

2021-06-23 13:58:02 2476

原创 大数据入门(三)HDFS Shell与Java API

HDFS ShellHSFD Java API

2021-06-06 19:06:32 502 3

原创 大数据入门(二)Hadoop分布式文件系统——HDFS简介

1. HDFS是什么

2021-05-13 15:55:14 2391

原创 大数据入门(一)Hadoop伪分布式安装

1、前言1.1 大数据的定义大数据(Big Data)是一种规模大到在获取、存储、管理、分析方面大大超出传统数据库软件工具能力范围的数据集合 ,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征(4V特征)。IBM公司提出大数据具有5V特点:Volume(大量化)、Velocity(快速化)、Variety(多样化)、Value(价值低)、Veracity(真实性)。1.2 Hadoop生态圈简介==》拍照2、Hadoop伪分布式安装2.1VMwear..

2021-05-07 16:10:53 331 2

原创 [Spark]根据父子节点构建树

数据集中有两列child和parent,需要依据此父子节点来构建树,找到根节点以及调用链。一、递归遍历import org.apache.spark.sql.DataFrame;val sqlContext=new org.apache.spark.sql.SQLContext(sc);val df = sqlContext.createDataFrame(List( ("a", "b", "b", "a-b", "20190201"), ("b", "c", "c", "b-..

2020-08-14 15:38:31 1394

原创 Antlr4入门(六)实战之JSON

本章中,我们将学习编写JSON语法文件,即如何通过阅读参考手册、样例代码和已有的非ANTLR语法来构造完整的语法。接着我们将使用监听器或访问器来将JSON格式转成XML。注:JSON是一种存储键值对的数据结构,由于值本身也可以作为键值对的容器,JSON中可以包含嵌套结构。一、自顶向下的设计——编写JSON语法在本章中,我们的目标是通过阅读JSON参考手册、查看它的语法描述图和现有的语法来构造一个能够解析JSON的ANTLR语法。下面,我们将从JSON参考手册中提取关键词汇,然后一步步将它们编.

2020-06-05 15:21:23 2728

原创 Antlr4入门(五)实战之CSV

在前面的章节中,我们已经学习了如何编写语法文件和使用监听器和访问器来实现具体的动作。现在,是时候使用这些知识来构造真实世界的语法了。在本章中,我们将从最简单的CSV(comma-separated-value)格式开始,学习如何通过阅读参考手册、样例代码和已有的非ANTLR语法来构造完整的语法,并使用监听器或访问器来将CSV转成Map。一、自顶向下的设计——编写CSV语法设计良好的语法反应了编程世界中的功能分解或者自顶向下的设计。这意味着我们对语言结构的辨识是从最粗的粒度开始,一直进行到最详细的.

2020-06-04 17:05:36 1963

原创 Antlr4入门(四)监听器、访问器与语法分析树的标注

ANTLR的运行库提供了两种遍历树的机制:语法分析树监听器与访问器。通过它们,我们可以在遍历树的时候实现相应逻辑。在本章中,我们将通过编写一个简单的计算器来探究三种在事件方法中共享信息的途径。一、计算器语法文件按照上一章“Antlr4入门(三)如何编写语法文件”所学的内容,我们可以很轻松的写出一个只支持加法和乘法的计算器语法文件。grammar ExprTest;cal : expr;expr : expr MUL expr # Mul | expr ADD exp.

2020-06-04 14:58:33 5662 1

原创 Antlr4入门(三)如何编写语法文件

本章我们将会学习词法及语法规则,以及四种抽象的计算机语言模式。因为ANTLR的语法规则跟正则表达式是很类似的,所以还是推荐先阅读下正则表达式的相关内容,这样在编写语法文件时可以事半功倍。一、四种语言模式虽然在过去的50年里人们发明了许许多多的编程语言,但是,相对而言,基本的语言模式种类并不多。之所以如此,是因为人们在设计编程语言的时候,倾向于将它们设计成与脑海中的自然语言相类似。我们希望符号按照有效的顺序排列,并且符号之间拥有着特定的依赖关系。举个例子,{(}) 就是不符合语法的,因为符号的顺序.

2020-06-04 12:43:51 11001 3

原创 Antlr4入门(二)基本概念解析

在上一章中(Antlr4入门(一)IDEA中Antlr的安装与使用),我们安装了Antlr,并编写运行了第一个程序“Hello world”。而在本章中,我们将学习语言类应用程序相关的重要过程、术语和数据结构。一. 术语语言(language)是由一系列有意义的语句组成,语句(sentence)由词组组成,词组(phrase)是由更小的子词组(subphrase)和词汇符号(vocabulary symbols)组成。举个例子,英语就是一种语言,“Keep on going never gi.

2020-05-29 18:35:08 4166 3

原创 Antlr4入门(一)IDEA中Antlr的安装与使用

Antlr (ANother Tool for Language Recognition) 是一款强大的语法分析器生成工具,可用于读取、处理、执行和翻译结构化的文本或者二进制文件。它被广泛应用于学术领域和工业生产实践,是众多语言、工具和框架的基石。我们可以使用Antlr来开发DSL(Domain Specific Language,领域特定语言),或者一些实用工具,比如配置文件读取器、遗留代码转换器和Json解析器等等。作为Antlr入门的第一章,我们的目标是大体上知道Antlr能做什么。为此,我们.

2020-05-27 17:49:18 14369 15

原创 OAuth2.0入门(二)—— spring-security-oauth2入门例子JDBC存储(超详细版)下篇

上一篇文章:OAuth2.0入门(二)—— spring-security-oauth2入门例子JDBC存储(超详细版)上篇本文我们继续上一篇文章的内容来讲解下oauth2-resource-server模块和oauth-client模块。一、oauth2-resource-server模块oauth2-resource-server模块是作为资源服务器,pom文件如下:...

2019-12-26 14:47:06 974 2

原创 OAuth2.0入门(二)—— spring-security-oauth2入门例子JDBC存储(超详细版)上篇

前言:本文是OAuth2.0实践篇,阅读之前需要先掌握OAuth2.0基本原理,原理介绍见:OAuth2.0入门(一)—— 基本概念详解和图文并茂讲解四种授权类型 本章将采用微服务架构方式,将OAuth2-Demo拆分成三个模块:oauth2-authentication-server(作为授权认证中心)、oauth2-resource-server(作为资源服务器)、...

2019-12-24 16:33:19 3162

原创 Spring Security 认证流程详解

1、认证流程说明Spring Security实际上是通过一组过滤器链来对请求进行拦截操作的,如下图所示: 其中UsernamePasswordAuthenticationFilter和BasicAuthenticationFilter是两个核心过滤器。而FilterSecurityInterceptor会对之前这些核心过滤器进行相应判断,并抛出异常(例如身份认证没有通过)...

2019-12-24 10:21:17 1435

原创 算法温习——手撕快速排序

1、快速排序介绍坐在马桶上看算法:快速排序2、Java实现(个人实现。。)import org.junit.Test;public class QuickSortTest { public void quickSort(int[] array, int left, int right){ if (left>=right){ ...

2019-12-19 17:18:00 208

原创 Openshift入门:应用数据持久化(PV及PVC)

一、无状态应用与有状态应用 应用的有状态和无状态是根据应用是否有持久化保存数据的需求而言的,即持久化保存数据的应用为有状态应用,反之则为无状态的应用。常见的系统往往是有状态的应用,比如对于微博和微信这类应用,所有用户发布的内容和留言都是要保存记录的。但是一个系统往往是由众多微服务或更小的应用模块构成的。有的微服务或模块其实并没有数据持久化的需求。例如,搭建一个 Wordpress...

2019-12-05 15:06:58 1600

原创 OAuth2.0入门(一)—— 基本概念详解和图文并茂讲解四种授权类型

OAuth全称为Open Authorization(开放授权)。OAuth协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。——引用自百度百科一、为什么需要OAuth2.0协议...

2019-11-29 15:50:15 7102

原创 Sentinel: 分布式系统的流量防卫兵

1、Sentinel 介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel具有以下特征: 丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实...

2019-11-12 17:56:32 774

原创 单元测试之Activiti(基于EmbeddedPostgres去加载Activiti核心类)

本文将基于EmbeddedPostgres去加载Activiti核心类,从而进行有关Activiti的Unit Test。有关EmbeddedPostgres的内容见上一篇文章:单元测试之EmbeddedPostgres1、ActivitiConfig:配置Activiti核心类import lombok.extern.slf4j.Slf4j;import org.activ...

2019-11-06 14:45:48 378

原创 Spring Data JPA —— Audit 使用审计功能(附enum和jsonb如何映射到数据库)

Spring Data JPA 提供了Audit审计功能,用来记录创建时间、创建人、修改时间、修改人等,对应的注解为@CreateDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy。下面来详细讲解下如何使用。1、启用Audit功能@EnableJpaAuditing注解用于启动JPA的Audit审计功能。需要注意的是,@Create...

2019-11-06 14:13:17 1400

原创 Openshift入门:核心流程及服务部署/发现/发布/治理详解

OpenShift 容器云提供了众多基础设施和工具,承载了众多功能和特性,帮助用户通过这个平台提升企业 IT 的效率和敏捷度。 纵观 OpenShift 容器云项目,其中最重要的核心流程是将应用从静态的源代码变成动态的应用服务的过程 。1、应用构建第 1 步,部署应用。流程的开始是用户通过 OpenShift 的 Web 控制台或命令行 oc new- app 创建应...

2019-11-04 16:54:38 2649

原创 Openshift入门:基本概念解析

1、Project 和 Namespace 在 Kubernetes 中使用命名空间(Namespace)的概念来分隔资源 。 在同一个命名空间中,某一个对象的名称在其分类中必须是唯一的,但是分布在不同命名空间中的对象则可以同名 。 OpenShift 中继承了 Kubernetes命名空间的概念,而且在其之上定义了 Project对象的概念 。每一个 Project会和一个 Na...

2019-11-01 14:23:03 5304

原创 Junit4——按顺序执行test case

1、创建Order注解import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Target(ElementType.METH...

2019-09-10 11:44:42 924

原创 SFTP第三篇——Spring-Integration-Sftp实现

一、导入依赖 <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-sftp</artifactId> </dep...

2019-08-22 15:53:35 4834 1

原创 SFTP第二篇——jsch实现sftp上传下载等功能

一、导入依赖<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version></dependency>二、sftp.propert...

2019-08-22 15:38:56 1246

oauth2-demo.7z

OAuth2-Demo分为三个模块:oauth2-authentication-server(作为授权认证中心)、oauth2-resource-server(作为资源服务器)、oauth-client(作为第三方应用,模拟如何获取Token访问资源)

2019-12-26

哪吒_qrcode.png

使用MYQR生成的动态二维码,包含哪吒静态彩图和小猪GIF。

2019-11-05

小猪_qrcode.gif

使用MYQR生成的动态二维码,包含哪吒静态彩图和小猪GIF。

2019-11-05

oauth2-demo.7z

Spring Security OAuth Demo 搭建了认证服务、资源服务和client服务。

2019-07-05

bootstrap-magic.css

bootstrap-magic的css文件,定制你的bootstarp样式。

2019-03-21

空空如也

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

TA关注的人

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