- 博客(61)
- 资源 (3)
- 收藏
- 关注
转载 数据倾斜问题
一个任务中,数据文件在进入map阶段之前会进行切分,默认是128M一个数据块,但是如果当对文件使用GZIP压缩等不支持文件分割操作的压缩方式时,MR任务读取压缩后的文件时,是对它切分不了的,该压缩文件只会被一个任务所读取,如果有一个超大的不可切分的压缩文件被一个map读取时,就会发生map阶段的数据倾斜。这里我们需要明确一个概念,数据放到同一个reduce中的原因不是因为字段能不能join上,而是因为shuffle阶段的hash操作,只要key的hash结果是一样的,它们就会被拉到同一个reduce中。
2023-04-06 16:22:12 372
原创 维度建模概述
因此,说白了,所谓的维度建模就是一种组织数据仓库的形式、模型,用这种方式组织搭建的数据仓库,对快速支持数据分析有着巨大的帮助。比如,在一个零售业数据仓库中,事实表存着销售人员的销售记录,某天一个销售人员从北京分公司调到上海分公司了,那么如何来保存、处理这个变化呢?在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。所谓星座模型,是多个事实表共享维度表, 因而可以视为星型模型的集合,故亦称星座模型(星系模型)。另外,通常事实表中的。通常,最有用的事实就是数字类型的事实和可加类型的事实。
2023-04-06 15:52:02 872
原创 【Hive/Spark】常见参数配置
(用于spark3中字段类型不匹配(例如datetime无法转换成date),消除sql中时间歧义,将Spark .sql. LEGACY . timeparserpolicy设置为LEGACY来恢复Spark 3.0之前的状态来转化)(4)set spark.sql.finalStage.adaptive.advisoryPartitionSizeInBytes=2048M;
2023-04-03 15:08:17 1538
原创 Hive基础知识(三)--分桶表
1、分桶表分桶和分区一样,也是一种通过改变表的存储模式,从而完成对表优化的一种调优方式,但和分区不同的是,分区是将表拆分到不同的子目录中进行存储,而分桶是将表拆分到不同文件中进行存储。2、分桶操作目的改变数据的存储分布,提升查询、取样、Join等特定任务的执行效率。3、分桶表的操作CREATE [EXTERNAL] TABLE <table_name>(<col_name> <data_type> [, <col_name> <data_t
2022-04-02 11:37:40 4126
原创 Hive基础知识(二)--分区表
二、表分区1、创建分区表CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name[(col_name data_type [COMMENT col_comment], ... [constraint_specification])][COMMENT table_comment]PARTITIONED BY (col_name1 data_type, col_name2 data_type [COMMENT co
2022-04-01 17:06:05 2011
原创 Hive基础知识(一)
一、SQL DDL1、启动hive首先使用【jps】查看hive是否启动# 启动hiveserver2hive --service hiveserver2 &# 启动metastorehive --service metastore &2、进入hive# 方法一:beeline方式(推荐)beeline -u jdbc:hive2://node03:10000 -n root# 方法二:hive cli方式hive3、数据库基本操作创建数据库create
2022-03-31 17:15:45 4940
原创 hive -e和 -f的区别
hive -e + sql语句hive -e "create database mall;"hive -f + sql文件hive -f ../sql/ods_ddl.sql
2022-03-22 16:37:16 1853
原创 mysql默认不允许创建函数,修改以下内容
报错信息ERROR 1418: This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)修改如下:SET GLOBAL log_bin_trust_function
2022-03-16 14:31:59 1019
原创 shell基础语法(持续更新ing)
一、变量#!/bin/bashecho "hello shell"hello shell# 变量bianliang='变量'b=2echo $becho $bianliang;bianliang_1='变量1'echo ${bianliang_1}_bianliang='变量2'echo $_bianliang2变量变量1变量2_readonly_='只读变量'echo $_readonly_readonly _readonly__readonly_='只读属性,
2022-03-11 17:18:24 161
原创 电信收费计费系统BI项目
一、数据仓库体系架构图二、在Oracle数据库中创建三个用户用户代表数据仓库层级bi_oltpoltpbi_odsodsbi_edwedw创建用户bi_oltpcreate user bi_oltp identified by bi_oltp default tablespace users temporary tablespace temp profile default account unlock;grant connect to bi_olt
2022-03-04 16:22:23 2456 1
原创 数据库面试题汇总
1、SQL 中 on 条件与 where 条件的区别数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用 left join 时,on 和 where 条件的区别如下:1)on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。2)where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。tbl_a
2022-03-04 10:06:01 11079
原创 某服务器数据清洗和简单分析
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdf = pd.read_csv('log.txt',sep='\t',header=None)df.head() 0 1 2 3 4 5 6 7 8 0 201
2022-03-01 15:31:45 340
原创 北京某平台二手房分析
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns# 解决中⽂显示问题# plt.rcParams['font.sans-serif'] = [u'SimHei']# plt.rcParams['axes.unicode_minus'] = Falsedf = pd.read_csv('二手房数据.csv',encoding='gb18030')df.head
2022-02-28 17:11:03 619
原创 tableau基本图形绘制--以自带超市数据为例
1、条形图将【发货日期】拖到筛选器,选择【年/月】,选择【2021年12月】,将【销售额】和【省/自治区】拖到行列,选择【升序】或者【降序】,并且可以选择【水平条形图】或者垂直条形图,然后将【类别】拖到颜色,并进行排序。2、直方图字段【年龄】创建数据桶,并设置数据桶名称和数据桶大小,将生成的新字段和【客户(计数)】拖到行列,生成图表,并更改坐标名称。3、饼图【标记】选择【饼图】,将【区域】拖到颜色,【销售额】拖到角度,【区域】、【销售额】拖到标签,并对销售额进行【快速表计算】
2022-01-05 17:56:15 5277
原创 Pandas实用小功能
Pandas实用小功能import pandas as pdimport numpy as np1、读取时抽样百分比data = pd.read_csv(r'..\test.csv',encoding='utf-8', skiprows = lambda x: x>0 and np.random.rand() > 0.5)data.head() PassengerId Pclass
2021-12-22 17:31:17 438
原创 EXCEL常见操作
1、数据汇总:Alt +2、数据差异性对比:Ctrl \3、一键提取/合并:Ctrl E4、一键美化表格:Ctrl T 或者 Ctrl L5、输入大额整数6、数据验证功能7、连接符:&8、多区域/多工作表同时录入:CTRL全部选中,输入内容(还可以输入函数,如RANDBETWEEN(1,100),生成1-100的随机数),CTRL+enter接下来第三章!!!...
2021-12-14 09:54:56 1051
原创 数据看板--日报、周报、月报
一、数据预览二、效果图预览三、新增字段1、周数WEEKNUM(B2,2)2、月份MONTH(B2)备注:B2为日期列四、看板制作过程1、控件控件范围从1到364,用于控制每天的日期2、通过控件确定当前日期当天日期=基准数字+表单控件当前值星期几=TEXT(当天日期,“aaaa”)3、计算当天销售额和订单数SUMIFS(数据!$F:$F,数据!$B:$B,日报思路!$G$2)COUNTIF(数据!$B:$B,日报思路!$G$2)--$G$2代表当天日期4、计
2021-12-13 16:59:42 3735
原创 SQL行列转换问题
1、列转行建表语句DROP TABLE IF EXISTS `t_student`;CREATE TABLE `t_student` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键 id', `name` varchar(50) DEFAULT NULL COMMENT '姓名', `course` varchar(50) DEFAULT NULL COMMENT '课程', `score` int(3) DEFAULT NUL
2021-12-03 14:47:11 247
原创 简易数据看板--直播订单统计分析
一、成果预览1、Excel效果2、tableau效果二、数据源预览三、具体步骤1、Excel数据验证,设置下拉选项内容按月份计算产品订单数量、产品销售金额,用到sumifs函数SUMIFS(直播订单明细表!$H:$H,直播订单明细表!$C:$C,日报看板!$B$7,直播订单明细表!$F:$F,G$1)按类别统计SUMIFS(直播订单明细表!$H:$H,直播订单明细表!$E:$E,$C23,直播订单明细表!$C:$C,日报看板!$B$7)根据计算结果生
2021-12-01 17:04:25 1094
原创 Excel用控件动态控制图表
一、表数据预览二、结果展示说明: 选择【年份】和【产品】,曲线图和表格数据进行相应的变化。三、具体步骤1、列出【产品】、【年份】列表2、插入控件【开发工具】–【表单控件】–【组合框】控件格式设置,选择年份列表作为数据区域,并选择任意空白单元格作为单元格连接同理处理产品列获取组合框选中的【产品】、【年份】,使用index()函数,如:=INDEX($O$7:$O$10,$N$7)$O$7:$O$10--待选数据区域$N$7--单元格链接取的单元格组
2021-11-23 15:15:01 3404
原创 Excel数据透视表、数据透视图
1、插入–>数据透视表,拖拽字段到行、列、值2、将数据源变为表格(CTRL+T),然后再插入透视数据表,这样透视表就可以随着数据源的改变而改变3、鼠标双击会直接生产明细sheet页4、分析-插入切片器 ,实现图表联动第九章...
2021-11-15 21:31:30 677
原创 Excel常见操作之根据表头自动更新数据表
一、数据部分预览二、结果三、执行步骤1、选择器设置数据–》数据验证2、计算–sumifs()函数=SUMIFS($H:$H,$D:$D,$K15,$E:$E,L$14,$G:$G,$K$14)3、结果
2021-11-15 14:31:29 1484
原创 Kettle入门(四)--创建作业
七、创建作业job1、新建作业2、选择START【通用】–》【START】3、选择转换【通用】–》【转换】4、成功【通用】–》【成功】5、开始结束
2021-11-05 16:21:56 1466
原创 Kettle入门(三)
六、数据增量更新问题1、方式一:脚本执行SQL脚本表输入:表输出结果2、裁剪表表输出设置【剪裁表】结果:3、插入/更新结论: 当数据源变化时,重新抽取后,目标也变过来了4、同步更新表输入:表输入2:排序记录:按照主键进行排序合并记录: 需要注意新旧数据源,该实例中,【表输入2】为旧数据源,【表输入】为新数据源数据同步结果:只插入了新增的两条数据5、时间戳方式更新(大数据量)清除目标表之前数据选择前一天的数据结果
2021-11-04 17:53:37 1461
原创 Kettle入门(一)
一、创建资料库1、在mysql数据库创建一个数据库,用来存放数据。create database target01;2、在kettle建立连接,点击右上角的【Connect】,选择【Other Repositories】,选择【Database Repository】,点击【Get Started】进入下一设置。3、给连接命名,并点击【Database Connection】,选择【Create New Connection】进入数据库连接设置4、按照要求,填写数据库配置,点击【测试】,.
2021-11-01 17:33:46 715 1
原创 Oracle报错:ORA-28001:口令已失效 解决办法
错误如下图:Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。解决办法:1、在CMD命令窗口中输入:sqlplus scott/tiger@orcl as sysdba;2、查看用户的proifle是哪个,一般是default :SELECT username,PROFILE FROM dba_users;3、查看对应的概要文件(如default)的密码有效期设置:SELECT * FROM dba_profil
2021-10-29 16:41:54 12988
原创 KNN算法
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltx_data = np.array([[118,20],[20,56],[99,78],[56,34],[90,10],[88,45]])x_dataarray([[118, 20], [ 20, 56], [ 99, 78], [ 56, 34], [ 90, 10], [ 88
2021-10-26 21:46:51 152
原创 seaborn绘图
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsdf = pd.read_csv('E:/python/Python数据分析与挖掘从零开始到实战/数据分析篇/学习笔记/数据/air_data.csv')df.head() MEMBER_NO FFP_DATE FIRST_FLIGHT_DATE
2021-10-25 17:13:05 2079
原创 matplotlib绘图
import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 解决中⽂显示问题plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False# 等差数列x = np.linspace(0,10,100)y1 = np.sin(x)y2 = np.cos(x)plt.plot(x,y,ls=,l
2021-10-22 17:43:47 562
原创 numpy笔记
import numpy as np一、创建数组data = np.array([1,2,3,4,5,6])dataarray([1, 2, 3, 4, 5, 6])type(data)numpy.ndarraydata = np.array([[1,2,3],[4,5,6],[7,8,9]])dataarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])data = np.arange(0,20,2)data
2021-10-21 15:40:31 280
原创 numpy常见操作汇总
numpy常见操作汇总本质是多维数组import numpy as np# numpy版本np.__version__'1.21.2'python listlist1 = list(range(10))list1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]list1[5]='hello list'list1[0, 1, 2, 3, 4, 'hello list', 6, 7, 8, 9]arrayimport arrayarr1 = arra
2021-10-21 15:37:55 215
原创 SQL练习题
逻辑树分析法,对复杂问题进行拆解create table student( sid varchar(6) not null primary key comment '学号', sname varchar(10) comment '学生姓名', sage datetime comment '出生日期', ssex varchar(10) comment '性别')engine=InnoDB default charset=utf8;alter table student comment '学生
2021-09-23 11:05:37 430
原创 MySQL导出、备份、导入数据
1、在MySQL中,可以使用SELECT…INTO OUTFILE语句将查询结果数据导出到文本文件 # 查看默认路径 show variables like '%secure_file_priv%';secure_file_priv取值说明:null–表示不允许导入导出空–表示没有任何限制指定路径–表示导入导出只能在指定路径下完成 SELECT * FROM user_range INTO OUTFILE 'C:\\ProgramData\\MySQL\\MySQL Server 8.
2021-09-16 17:55:37 982
原创 mysql复制表的三种方式
1、只复制表结构,包括主键、索引,但不会复制表数据 create table tb1 like tb2;2、复制表的大体结构及全部数据,不会复制主键、索引等 create table tb1 select * from tb2;3、分两步完成,先复制表结构,再插入数据 create table tb1 like tb2; insert into tb1 select * from tb2;...
2021-09-16 16:59:02 4888
原创 MySQL存储过程
存储过程示例:根据用户id和邮件内容content给用户发邮件drop table if exists user_info;drop table if exists email_info;create table user_info( id int not null auto_increment primary key, name varchar(30), email varchar(50));insert into user_info(id, name, email) values..
2021-09-16 16:19:30 139
原创 MySQL预处理
从MySQL 4.1开始,就支持预处理语句(Prepared statement),这大大提高了客户端和服务器端数据传输的效率。当创建一个预定义SQL时,客户端向服务器发送一个SQL语句的原型;服务器端接收到这个SQL语句后,解析并存储这个SQL语句的部分执行计划,返回给客户端一个SQL语句处理句柄,以后每次执行这条SQL,客户端都指定使用这个句柄。即时SQL和预处理SQL对比 1、即时SQL:一次编译、一次运行 2、预处理SQL:一次编译、多次运行预处理优势: 1、高效执行重
2021-09-16 16:08:47 2070
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人