自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Simon的博客

人生就是一场修行,走自己的道,修自己的行。 脚踏实地、切忌浮躁,眼界决定高度,思路决定出路 年轻时的付出,都会是一种沉淀,它们会默默铺路,只为让你成为更好的人。

  • 博客(45)
  • 收藏
  • 关注

原创 适配器模式(结构型)

适配器模式(结构型)适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能适配器模式,是在类写好之后,不想修改原类的代码的方法,比如cat类有个方法是miaomiao,dog类有个方法是wangwang,拖拉机类有个方法是dadada,现在需要设计个适配器,调用统一的方法make_sound来实现不用类的不同方法,精髓就是修改适配器类的__dict_

2021-11-15 17:53:10 661

原创 享元模式(结构型)

享元模式(结构型)​ 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。​ 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。精髓就是维护一个字典​ 单例模式下,实例化一个类就会生成一个新的对象​ 享元模式下,实例化一个类且相同参数最多只会生成一个对象import weakrefclass Card(object):

2021-11-15 16:53:59 332

原创 WINDOWS安装类Unix操作环境

Win10安装cygwin工作中需要大量执行shell, 因此建议安装unix操作环境cygwin.安装 cygwinhttp://www.cygwin.com/setup-x86.exe使用163镜像:参阅: http://mirrors.163.com/.help/cygwin.html详细安装教程:https://blog.csdn.net/lvsehaiyang1993/article/details/81027399另需要安装的命令:gitrsyncvimwgetcurl

2021-04-09 17:04:25 933

原创 MYSQL常见业务需求

文章目录MYSQL常用的SQL思路归类1. 分组取TOP N条记录2.分组累计(要加方法2)3.连续问题4.行转列MYSQL常用的SQL思路归类1. 分组取TOP N条记录思路:利用开窗函数排名(不支持开窗函数可自定义变量实现)ROW_NUMBER()over() :生成密集不重复序号:1,2,3,4,5rank()over():不密集有重复 1,1,3,4,5dense_rank()over():密集有重复 1,1,2,3,4示例:leetcode直达Employee 表包含所有员工信

2021-03-20 14:44:15 306 1

原创 Spark介绍及安装

sparkSpark简述**SparkCore**1.RDD概念RDD的五大特性:RDD理解图注意2.Spark代码流程3. Transformations转换算子概念Transformation类算子:4. Action行动算子概念Action类算子5.控制算子概念cachepersist**cache和persist的注意事项:**checkpointcheckpoint 的执行原理:优化集群搭建以及测试搭建standalone注意:yarn测试Standalone提交命令:YARN提交命令:Sp

2021-03-20 14:35:20 240

原创 Spark On Hive

Spark On Hive配置1.将部署好的hive的路径下的conf/hive-site.xml复制到spark安装路径下的conf/2.将部署好的hive的路径下的lib/mysql驱动包,我的是(mysql-connector-java-8.0.15.jar)拷贝到spark安装路径下的jars/3.启动Hive的metastore服务hive --service metastore4.启动ZooKeeper集群,启动HDFS集群5.启动spark-shellbin/spark-sh

2021-03-20 14:27:20 836

原创 Python3使用Happybase操作Hbase

Python3使用Happybase操作HbaseGuidePython3使用Happybase操作Hbase前言准备1.开启thrift2.安装happybase库hbase-thrift报错开始使用happybase连接hbase连接池创建表查看表禁用/启用表删除表插入数据查询数据获取单元格数据获取一行数据获取多行数据扫描器获取数据filter过滤器删除数据批量处理数据前言Happybase官网文档:https://happybase.readthedocs.io/en/latest/api.h

2021-01-16 17:34:21 2112

原创 脚本一键启动Zookeeper集群

在zookeeper/bin目录下新建脚本文件 zkmanager.sh#!/bin/bashfor i in {"hadoop2","hadoop3","hadoop4"}; do echo "----------$1ing $i----------" ssh $i "source /etc/profile;/usr/local/zookeeper-3.5/bin/zkServer.sh $1"donesleep 5for j in {"hadoop2","

2021-01-15 13:11:40 451

原创 python3打包成exe并压缩,生成文件很小

Py程序打包成exe文件很多同学都会,但是很多人打包完发现:一个简单的Py程序打包成exe文件之后编程几百兆了Python如何打包成exe,以及如何打得足够小。一、标准打包目前比较常见的打包exe方法都是通过Pyinstaller来实现的,本文也将使用这种常规方法。如果对这块已经很熟悉的小伙伴,可以直接下滑到本文下半部分。1、为什么要打包?众所周知,Python脚本不能在没有安装Python的机器上运行。那我们如果写了一个数据分析/自动化办公的小脚本,想分享给同事小姐姐使用,可她电脑又没有装Py

2021-01-14 18:08:27 4608 2

原创 Hive操作Hbase(详细配置及操作)

Hive操作Hbase(详细配置及操作)GuideHive操作Hbase(详细配置及操作)前言版本:适用场景开始配置操作1. 创建一张Hbase表2. 在Hive创建一张Hbase的映射表(外部表)3. 创建一张原始表来导入本地数据4. 将原始表数据插入到映射表5. 在Hive&Hbase查询数据6.使用Hive删除批量Hbase数据前言HBase 虽然可以存储数亿或数十亿行数据,但是对于数据分析来说,不太友好,只提供了简单的基于 Key 值的快速查询能力,没法进行大量的条件查询。不过,Hi

2021-01-14 17:42:20 3744

原创 Hive 报错 java.lang.ClassNotFoundException:com.google.common.collect.ImmutableSortedMap

场景:Hive 创建表,查看表都可以,但是一使用select 命令就报错 com.google.common.collect.ImmutableSortedMap版本:hadoop 3.2.0 hive 3.1解决将 Hive 的 lib 目录下的 guava-19.0.jar 替换掉 Hadoop 的 share/hadoop/common/lib 目录下的 guava-11.0.2.jar (删除前记得先备份一下)Hive的lib下只留guav

2021-01-14 17:24:16 1250

原创 HIVE 优化

HIVE 优化优化思路HIVE 优化HIVE优化核心思想:以下SQL不会转为Mapreduce来执行:Explain 显示执行计划HIVE运行方式本地模式并行计算严格模式hive排序hive join合并小文件去重统计HIVE优化核心思想:把Hive SQL 当做Mapreduce程序去优化以下SQL不会转为Mapreduce来执行:select仅查询本表字段where仅对本表字段做条件过滤Explain 显示执行计划EXPLAIN [EXTENDED] queryHIVE运行方式-

2021-01-08 16:45:38 179

原创 Hive SQL

文章目录Hive SQL表类型Hive 内部表Hive 外部表快速建表Create Table LikeCreate Table As Select (CTAS)修改表查看表信息静态分区创建分区表添加分区删除分区向指定分区添加数据查看分区查询执行分区语法外部表预先导入分区操作,但是数据无法识别怎么做动态分区开启支持动态分区插入数据加载本地或者hdfs表文件表到表表到本地表分桶开启分桶创建一个分桶表桶表的抽样查询Hive 正则创建匹配表LATERAL VIEWLATERAL VIEW OUTERHive S

2021-01-05 16:21:14 305

原创 启动hiveserver2服务后使用beeline报错Could not open client transport with JDBC Uri: jdbc:hive2://localhost:100

启动hive server2服务之后使用beeline链接报一下错误beeline> !connect jdbc:hive2://localhost:10000Connecting to jdbc:hive2://localhost:10000Enter username for jdbc:hive2://localhost:10000: rootEnter password for jdbc:hive2://localhost:10000: **19/03/01 22:01:59 [mai

2020-12-29 17:02:50 937

原创 WINDOWS下python3连接hive(踩坑填坑)

python3连接hive1.使用pyhive连接hive (没成功 (╥╯^╰╥) )(连接未成功,可跳过,直接看用 impala连接hive )安装好连接hive所需的包pip install pyhivepip install thriftpip install saslpip install thrift_sasl安装sasl不成功的话,可以去官网 https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl然后选择自己python对

2020-12-29 16:05:25 1700 8

原创 MYSQL的explain详解

在分析sql语句以及考虑性能优化时,通常会使用explain语句explain select * from fr_stockexpain出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra描述:id: 选择标识符select_type:表示查询的类型。table:输出结果集的表partitions:匹配的分区type:表示表的连接类型possible_keys:表示查询时,可能

2020-11-16 14:33:27 245

原创 用github pages + hexo搭建博客详细教程

Github Pagesgithub pages 是github提供给用户用来展示个人或者项目主页的静态网页系统。每个用户都可以使用自己的github项目创建,上传静态页面的html文件,github会帮你自动更新你的页面。操作如下:注册 Github 账号,然后在 Github 中创建一个以 .github.io 结尾的 Repository。1.1 Repository name: 自定义名字.github.io1.2 勾选 Initialize this repository with

2020-10-28 12:34:45 370

原创 nodejs写一个简单的数据接口并后台运行及做成服务

前两天公司的有个前端项目需要访问数据库取一些产品数据的信息,然后我用nodejs写了一个简单的数据接口提供,数据库是sql server的,请求方式是get含参数const express=require('express');const app=express();var sql = require('mssql');const superAgent=require('superagent'); app.get('/api/size_info',function(req,res){re

2020-06-19 11:49:36 1994 1

原创 MYSQL取分组后的前几条记录

环境:mysql 5.7数据库中有一个报餐表,我要取各个用餐地址组内用餐最多的前三名数据表中部分数据是这样的第一种方法:select lounum,fdcount from fr_foods填报 awhere 3>(select count(*) from fr_foods填报 b where lounum=a.lounum and fdcount>a.fdcount )order by a.lounum,a.fdcount desc结果:这个会把组内所有跟前三名并列的都查

2020-06-17 18:07:33 3586 1

原创 MySQL中rank()、row_number()、dense_rank()排序

本地有这样一张测试表执行排序代码select id, name, rank() over(order by score desc) as rank_, DENSE_RANK() OVER(order by score desc) as dense_rank_, row_number() OVER(order by score desc) as row_number_from students;结果如下:

2020-06-17 15:19:44 416

原创 详细配置MYSQL主从数据库同步

主从同步的定义主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。因为复制是异步进行的,所以从服务器不需要一直连接着主服务器,从服务器甚至可以通过拨号断断续续地连接主服务器。通过配置文件,可以指定复制所有的数据库,某个数据库,甚至是某个数据库上的某个表。使用主从同步的好处:通过增加从服务器来提高数据库的性能,在主服务器上执行写入和更新,在从服务器上向外提供读功能,可以动态地调整从服务器的数量,从而调整

2020-06-17 11:24:45 528

原创 electron使用教程三:程序打包为exe文件

首先cd到程序所在文件夹,需要全局安装打包工具 electron-packagercnpm install electron-packager -g打包方式一:直接在命令行输入打包命令electron-packager . HelloWorld --platform=win32 --arch=x64 --icon=computer.ico --out=./out --asar --app-...

2020-04-14 17:56:26 935

原创 electron使用教程一:初次安装electron

electron官网electron官方文档一、electron安装(安装之前需要安装配置好nodejs环境)npm命令安装electron库:npm install electron --save-dev也可以全局安装npm install electron -g一般网络直接下载electron太慢了,所以推荐用淘宝镜像,如下:npm install -g cnpm --r...

2020-04-14 16:36:20 1715 1

原创 MYSQL的日期时间函数

获取当前日期时间–now()sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。mysql> select now(), sleep(3), now();+---------------------+----------+---------------------+| now() | ...

2020-03-04 14:55:27 145

原创 SQL SERVER 时间日期函数

获取当前时间–getdate()获取当前年的第一天–dateadd(yy,datediff(yy,0,getdate()),0)获取当前月的第一天–dateadd(mm,datediff(mm,0,getdate()),0)获取当前周的第一天–dateadd(wk,datediff(wk,0,getdate()),0)获取去年的最后一天–dateadd(ms,-3,dateadd(yy,d...

2020-03-04 13:24:05 183

原创 SQL SERVER 模糊查询列名

做报表开发时遇到一个比较特别的数据结构,表结构如下frr表:(工位信息)fr表:(vin是产品 ,abc_time表示工位abc的工作日期,abc_count 表示在工位abc的产品计数)报表需求是用工位 带出对应工作日期和计数结果,解决办法,有两种思路:一、利用列传行,把fr的列转为行(方法很多,可以用unpivot或者union all等等);二、模糊查询列名(嗯,因吹斯听。。...

2019-11-29 16:38:52 2420

原创 MYSQL查询同时包含两行数据的数据(用户既买了商品A又买了商品B)

现在有个场景:要查询订单中,哪些订单是顾客既买了A又买了B的订单表user_pro结构数据如下:SQL查询:SELECT * FROM user_pro T WHERE EXISTS(SELECT 1 FROM user_pro WHERE user=T.user AND product='A') AND EXISTS(SELECT 1 FROM user_pro WHERE u...

2019-11-27 15:30:33 8401 1

原创 MYSQL与SQL SERVER update 语法的区别

现有两张表A,B:A表字段:a_id,a_nameB表字段:b_id,b_name要把A表的a_name更新为b_nameMYSQL:update A left join B on A.a_id=B.b_idset a_name=b_nameSQL SERVER:update A set A.a_name=B.b_namefrom A left join Bon A.a_...

2019-11-08 09:51:49 359

原创 帆软教程:正则表达式定义规则

Finereport正则表达式定义规则有时候我们需要用到正则表达式,正则表达式的书写规则如下: 例如输入验证用户密码的正则表达式:“^[a-zA-Z]\w{5,17}$”表示密码规则是以字母开头,长度在 6-18之间,只能包含字母、数字和下划线。l \d任意一个数字,0~9 中的任意一个l \w任意一个字母或数字或下划线,也就是 A-Z,a-z,0-9 中任意一个l \s包括空格、制表符...

2019-07-22 10:30:07 2998

原创 linux教程:查看端口占用情况及开放关闭端口

查看端口占用情况:列出所有端口:netstat -lntp-l或–listening 显示监控中的服务器的Socket-n或–numeric 直接使用IP地址,而不通过域名服务器-t或–tcp 显示TCP传输协议的连线状况-p或–programs 显示正在使用Socket的程序识别码和程序名称查看某个端口的情况(以80为例):lsof -i tcp:80或者netsta...

2019-07-10 09:58:12 1445

原创 在windows上安装配置伪分布式HADOOP3.0

在windows 64位上安装hadoop3.0.21.下载JDK,并设置JAVA_HOME。(使用不带空格的路径,比如Program Files,将在后面的配置中报错!若实在是有空格也是有解决办法,步骤5中会提到)假设JAVA_HOME路径为C:\Java\jdk1.8.0_131然后在Path中添加路径:%JAVA_HOME%;%JAVA_HOME%\bin2.下载hadoop官网...

2019-06-25 13:23:49 656

原创 MYSQL可重复读及原理、快照读和当前读

什么是可重复读可重复读的实现Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录(读已经提交的,其实是读早于本事务开始且已经提交的),但是不能看到其他事务对已有记录的更新(即晚于本事务开始的),并且,该事务不要求与其他事务是“可串行化”的。可以看到当session2 在步骤4插入新纪录并提交时,session1查到的还是之前的数据,而要...

2019-06-24 15:26:55 8586 6

原创 帆软教程:点击表头字段实现排序功能(绝对好用)

帆软报表实现点击表头排序功能FINEREPORT实现跟EXCEL表格一样的,点击表头升降序功能,效果见下图示例:(点击字段切换升降序)如何实现一、创建一个数据查询,并添加数据集参数select * from `purchase_order`order by ${columns} ${sort}记得两个参数之间要加个空格再添加一个参数模板,用来把箭头传进去二、设置单元格在...

2019-06-21 15:50:59 13281 8

转载 MYSQL之事件EVENT

事件**检查数据库事件是否开启:**如果event_scheduler 状态是on 即为开启状态:select @@event_scheduler; ---法一show variables like "event_schduler%"; --法二开启事件set global event_scheduler=1关闭事件set GLOBAL event_schduler=OFF...

2019-06-21 14:36:32 115

转载 MYSQL之存储过程详解

存储过程详解存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。一、存储过程的创建及调用CREATE [DEFINER = { ...

2019-06-21 13:20:24 119

原创 centos7 修改主机名称

centos7修改主机名称先查看当前主机名称 hostname[root@localhost simon]# hostname>>>localhost.localdomain修改主机名称[root@localhost simon]# vim /etc/hostname把里面的内容删除 加上自己想要的名称(例:hadoop1)然后保存之后重启再查看自己的主机名啦...

2019-05-30 16:49:18 196

转载 帆软教程:js实现标签自定义

可以自定义显示最大值,最小值,TOP3 等,具体可详见帆软官方教程

2019-05-09 15:40:41 2998

转载 帆软教程:用Html实现文本滚动跑马灯

新建表单 设置需要展示(B1)的单元格属性:选择不自动调整, 显示内容为 用HTML显示内容将数据拖入c1 设置扩展方式为不扩展B2中的单元格公式为"<marquee id='affiche' style='text-align:center;' behavior='scroll' behavior='scroll' bgcolor='#ffffff' direction='up'...

2019-05-09 15:29:58 3012

原创 帆软教程:js实现图表自动滚动(跑马灯)

JS实现报表块的跑马灯效果case one: 表格或图表未冻结首行创建好表单、图表之后,点击报表快,选择事件——初始化后——编辑添加JS代码setTimeout(function() { $("div[widgetname=B]").find(".reportContent")[0].style.overflow = "hidden";}, 1000);//隐藏控件名为B的滚...

2019-05-09 10:27:57 11137 6

原创 mysql:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)解决方法

Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (111)解决方法Linux 启动mysql时报错:Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (111)1、cd /va...

2019-04-23 15:56:33 3118

空空如也

空空如也

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

TA关注的人

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