自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spark-core 常用算子

数据处理角度Map 算子是分区内一个数据一个数据的执行,类似于串行操作。而 mapPartitions 算子是以分区为单位进行批处理操作。 功能的角度Map 算子主要目的将数据源中的数据进行转换和改变。但是不会减少或增多数据。MapPartitions 算子需要传递一个迭代器,返回一个迭代器,没有要求的元素的个数保持不变,所以可以增加或减少数据 性能的角度Map 算子因为类似于串行操作,所以性能比较低,而是 mapPartitions 算子类似于批处理,所以性能较高。但是 mapPart

2021-05-04 22:52:57 343

原创 hql

select t2.videoid,t2.views,t2.tmp from( select t1.videoid,t1.views,t1.tmp,rank() over(partition by tmp order by t1.views desc)rc from ( select videoid,views,tmp from gulivideo_orc lateral view explode(catego

2021-01-23 22:41:20 193

原创 维度分析函数-grouping sets

一、group sets就是在进行数据分析的时候,可以通过一个select 语句查询多条 来自不同维度的数据汇总,进行数据分析select ename,deptno,avg(sal) from emp group by ename,deptno grouping sets ((ename,deptno),ename,deptno,());从四个维度来进行分析 avg(sal),薪资的平均值(ename,dept):名字和部门(ename):姓名(dept):部门():总的平均值该函数只是为

2021-01-22 22:56:34 816

原创 over()函数

一、over() over函数,我觉着是我学习数据库之后,最难理解的一个函数了。其实理解也算理解的可以,但是就是使用起来会和自己理解的本意有些出入 over()函数又叫做开窗函数,是指在对一些明细数据进行聚合操作时,通过over()函数,对明细数据再次进行分组,然后聚合。select count(*) over(partition by name order by name) from t1;//统计表中每个人出现的次数,这个特殊的例子也可以通过grou

2021-01-21 23:10:53 5536

原创 hive常用函数总结

一、hive 函数分类在hive中函数一般分为三种类型UDF: 一行数据对应一行数据,在select 的过程中每个函数的属性都不会再分割UDAF:多行数据对应一行数据,典型的就是聚合函数sum,count,将多个属性值汇聚到一个数据值UDTF: 一行数据对应多行数据,指在某种特殊情况下,将属性值,再次进行分解,形成了一个属性字段对应多行,explode函数就是典型。二、UDF函数1) NVL函数判断传入参数是否为空,有点if else的意思select nvl(e.no,t.no) from

2021-01-20 23:38:17 729 2

原创 hive-排序函数总结

一、order by基于整个表的全表扫描,所以只会有一个分区产生,即只有一个reduce任务,支持升序和降序 asc|desc二、sort by可以通过设置reduce的个数,来对reduce任务的内部排序,但是每个分区里面数据通过随机算法分配的,不能人为设置,所以一般都会和distribu by进行联合使用,支持升序降序设置reduce个数set mapreduce.job.reduces=i;set mapreduce.job.reduces //可以查看当前的分配情况三、 distr

2021-01-19 22:07:01 412 1

原创 hive的group by

一、select二、 聚合函数三、group by 与having语句

2021-01-18 21:51:14 1010

原创 hive的DML

一、hive的数据存储hive的数据分为两类,一类为元数据存储在meatstore(默认derby)里面,另一类为表数据存储在hdfs中。所以说要查询一张表的数据,需要元数据和表数据都要存在,才能查到。二、hive表数据的导入1) 通过load语句进行导入load data [local] inpath ‘$PATH’ [overwrite] into table table_name[partition by(par.value)];load:相当于通过剪切方式来移动数据文件,将数据文件移动

2021-01-17 22:38:03 180

原创 hive的DDL

一、增删改查数据库1)增 create database[if not exists] database_name [comment 'beizhu'] [location 'hdfs_path'] //指定存储路径,默认为/user/hive/warehouse/database_name.db [with dbproperties(property_name=property_value)]//一般都是创建时间2)删drop database databases_name [cascad

2021-01-16 22:48:31 142

原创 hive类型转换

一、hive类型之间的转换1)隐式转换(1)可以由小的类型转换为大的类型,比如从int到bigint,byte到int,int, 到string2)整形,float 和 string都可以转换为double3)boolean类型不可以转换为任何类型(boolean为:true和false)2)显式转换使用cast操作将数据类型进行转换比如 cast(‘1’ AS INT) 把字符串转换为整数1,如果cast转换为类型失败会返回 NULL(hive表中某个字段不存在时,也为NULL)。一些特

2021-01-16 22:12:52 8830

原创 自定义UDTF函数

自定义UDTF函数一、实现UDTF函数依赖的jar1)实现类 (extends GenticUDTF)1.重新三个方法 init方法、process方法和close方法init方法:1、校验输入参数个数、校验输入参数类型2、定义返回值名称,校验返回值类型process方法1、实现UDTF函数的具体功能close方法一般都没用过2) 打包 jar ,上传到hdfs路径,然后再hive客户端创建 UDTF函数并添加class依赖default-> create function 函

2021-01-13 21:50:01 794

原创 Job failed with org.apache.spark.SparkException: Job aborted due to stage failure

今天在自己写了一个 jar 使用 hive on spark 模式 提交到 yarn上运行 发现一直报这个错误Job failed with org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 4 times, most recent failure: Lost task 0.3 in stage 0.0 (TID 4, hadoop101, executor 2):

2021-01-12 21:53:59 10742 5

原创 HIVE总结

四、 hql的读取hive读取索引的问题:select * from ods_log where dt='2020-12-29';select count(*) from ods_log where dt='2020-12-29';两个hql 语句统计ods_log表中的数据第一个读取行数为 10268 行第二个读取行数为10277行原因:第一个查询语句是不进行spark操作,直接通过建表语句来读取数据,建表语句中已经指明了inputformat为’com.hadoop.mapred.D

2021-01-11 22:00:24 110

原创 DWD层总结

DWD层:4步建模作用:1)对用户行为数据进行解析2)对核心数据进行判空过滤3)对业务数据采用维度模型重新建模。一、DWD层数据分析首先DWD层数据都来源于ODS层。具体数据可分为两类1)用户行为数据(多为json)2) 业务数据1、 用户行为数据业务行为数据一般都是来源于前端页面的埋点日志信息分为 启动日志 和普通日志启动日志表中每行数据对应一个启动记录,一个启动记录应该包含日志中的公共信息和启动信息。先将所有包含start字段的日志过滤出来,然后使用get_json_object

2021-01-10 22:19:33 4277

原创 ODS层的建立

ODS(原始数据层):隔离原始数据ODW层数据都来源于HDFS,存储于hive。概念1) 保持原始数据,起到备份数据的作用2) 数据采用LZO压缩,减少磁盘的存储空间3)创建分区表,防止后续的全表扫描4)创建外部表。一、hive的准备hive比较关键的模式模式就是 元数据存储,客户端,hql的编译器,hql解析器 、优化器、执行器采用模式为 hive on sparkhive 存储元数据,并负责sql的解析,而spark负责rdd的执行配置 hive-site.xml(并不配置 hiv

2021-01-09 22:57:43 952

原创 数仓总结

一、 数仓分层 1) 数仓层次 ODS层 (原始数据层):存储原始数据 DWD层 (明细数据层):对ODS层数据进行清洗、维度退化和脱敏 DWS层 (服务数据层):以DWD层为基础,以时间为单位进行汇总,粒度粗 DWT层 (数据主题层):以DWD层为基础,以主题为单位汇总,粒度更粗 ADS层 (数据应用层):为普通报表提供数据。 2)为什么分层 1、隔离原始数据 2、减少重复开发,增加一次计算数据的重用性

2021-01-07 23:16:16 338

原创 总结ing

一、linux 命令 查看磁盘使用情况 df -h 查看io内存使用 iotop (需要安装)iotop -P pid 查看进程使用 查看内存使用 top 多在脚本中使用 查看端口 netstat or netstat nltup 查看进程 ps -ef 平均负载 uptime 二、 shell 工具 awk: 按空格字符进行分割 参数 处理文本, awk '{print $i}' ...

2021-01-07 00:26:25 129

原创 sqoop脚本

sqoop import数据 脚本#!/bin/bash#设置变量sqoop = file{$ $}/bin/sqoop if[ -n $2 ]; then do_date = $2else do_date = 'date -d '-1 day' + %F'//上面的变量只是为了,渐变操作,不是必要的import_data(){ //核心函数,一般import的数据量比较大,所以写成函数 $sqoop import \ --connect jdbc:mysql

2021-01-05 22:36:20 1250

原创 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

jdbc连接错误,今天用sqoop从mysql往hdfs里面import数据,一直报这个错误Communications link failure,但是使用sqoop命令查看mysql中的databases却能正确查看最后总结为,这个错误为MySQL的配置问题,MySQL5中默认连接时间为8h,一旦超过这个时间,mysql5就会关闭。但是在我们的mysql中的连接池中仍存在合法的connection,修改方法:linux下配置文件为/etc/my.cnf添加一行wait_t...

2021-01-05 22:12:47 267 1

原创 完善ing

Hadoop参数(采用apache-Hadoop-3.1.3 版本)core-site.xmlfs.defalutFS --->指定namenode所在地址 HA下为(hdfs:// cuser1,cuser2...hadoop.tmp.dir --->指定数据的存储目录 标准为 file$ /hadoop-*/datahadoop.http.staticuser.user -->指定hdfs的静态页面使用用户 (该项主要是为了数据安全,一般都为hdfs或

2021-01-04 23:16:47 95

原创 zookeeper,启动成功,查看状态,显示拒绝访问

java.net.ConnectException: 拒绝连接 (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractP.

2020-07-15 14:09:30 1979 1

原创 kmp

kmp主要用于处理字符串匹配的问题,单串对单串,这东西,讲起来太麻烦了,当模板用吧#include <iostream>#include <string.h>using namespace std;int a[1000009],b[10009],n,m,next1[10009];void f(string s2){ int k=-1,j=0; next1[...

2019-08-27 15:20:07 152 1

原创 Digits Parade

题意:一个字符串S,每个字符是数字(0到9)或'?'(半角)。我们用数字(0 ~ 9)替换'?', 可以得到整数A,那么请问有多少种情况可以满足A除以13余5A可能有前导0Sample Input 3Copy7?4Sample Output 3Copy0We may not be able to produce an integer satisfying ...

2019-08-19 15:59:57 212

原创 拓展欧几里得求逆元

数论,emmm,敲这个只是为了加深印象。#include<iostream>using namespace std;int exgcd(int a,int b,int &x,int &y){ if(b==0) { x=1;y=0; return a; } int r=exgcd(b,a%b,x,y); int temp=y; y=x-a...

2019-08-17 00:32:03 162

原创 欧拉函数

欧拉函数属于数论里面比较基础的,但是写着写着就忘了,用来计算一个数n(小于n)的质因数的个数#include <iostream>using namespace std;int phi(int n){ int ans=n; int k=n; for(int i=2;i*i<=n;i++) { if(n%i==0) { n/=i; ans=a...

2019-08-16 16:32:06 105

原创 带权并查集

带权并查集,主要是来处理集合元素与元素之间的关系,或者说元素与元素连线之间的权值,板子是这样的int find(int x) { if (x == root[x]) return x; else { int t = find(root[x]); sum[x] += sum[root[x]]; root[x...

2019-08-15 00:51:54 123

原创 并查集应用

数据结构学了很长时间了,从二叉树到线段树,再到并查集和最小生成树。越来越考验思维能力,今天说一下并查集,并查集的思想是,对不交集的数据进行合并查询。主要通过find和join函数实现。int find(int x){ if(x!=root[x]) root[x]=find(root[x]); return root[x];}void join(int x,int...

2019-08-13 21:00:27 127

原创 I Hate It

今天为大家带来的仍然是线段树的题,emmmm,这个本来是想用树状数组来搞得,但是下午本来要去上海!!!!!!!!!没有学习,但是这两天那边有台风(听说17级,火车禁止通行),我又回来了,,退票费真贵。。。。。看题 ,这个题仍然是不用二进制就会TLE的线段树。改了无数个bug,一边过的题,昨天写的那个是,区间求和以及区间单点修改值,今天是区间求最大最小值。5 61 2 3 4 5Q...

2019-08-09 21:00:59 208

原创 敌兵布阵(线段树or树状数组)

这个题线段树的板子,敲了两个小时,还TLE,唉,狗生太难了,纪念一下昨天的情人节。第一行一个整数T,表示有T组数据。每组数据第一行一个正整数N(N<=50000),表示敌人有N个工兵营地,接下来有N个正整数,第i个正整数ai代表第i个工兵营地里开始时有ai个人(1<=ai<=50)。接下来每行有一条命令,命令有4种形式:(1) Add i j,i和j为正整数,表示...

2019-08-08 21:02:21 134

原创 Rails

Sample Input51 2 3 4 55 4 1 2 3066 5 4 3 2 100Sample OutputYesNoYes题意,告诉你一个队列,以栈的方式进行操作,看那个输出顺序是错误的。这种题用c++,里面的stack解决起来被叫方便,但是有个坑点是,每次查询完,得清空stack,不然容易wr。#include <i...

2019-08-06 19:44:39 117

原创 完全背包问题

今天联系到了完全背包问题,看了很久的板子,才动的题,最后wr到崩溃。先分享一下板子 for(int i=0;i<m;i++) for(int j=0;j<=mon;j++) { for(int k=0;k*p[i]<=j;k++) { dp[i+1][j]=max(dp[i+1][j],dp[i][j-k*p[i]]+k*h[i]...

2019-08-02 20:21:30 214

原创 Tempter of the Bone

hdu 1010题意 主角在规定时间内从起点到达终点,必须是是在规定的那一时刻(被坑le,本意 想dfs暴搜一下,T的很惨,最后大佬告诉我要剪枝。明天8月1日建军节,故写此篇。#include <iostream>#include <math.h>#include <cstring>using namespace std;int n,m,v...

2019-07-31 20:47:45 96

原创 B - Mountain Walking

大意给一个图,让你从左顶点走到右下角,且路径上最大的权值与最小的权值之差最小。51 1 3 6 81 2 2 5 54 4 0 3 38 0 2 3 44 3 0 2 1输出 2.刚开始就想着暴搜能过几个样例。结果T的我怀疑人生,题目正解是个二分加暴搜,感觉时间复杂度也不低,但是过了。。。。找出最大权值与最小权值,通过二分两者差值来找最优解,又理解了一下上次学习的...

2019-07-30 19:59:52 196

原创 Berland Fair

有一个环形的市场,总共有n个摊位.每个摊位的商品价格为a[i].(n号摊位和1号摊位相邻).现在小x从1号摊位开始,进行如下的购买策略:1.如果他有足够的钱能够在第i号摊位购买它的商品,那么他就会买下该商品.2.这之后,他会走到下一个摊位,如果当前摊位为n号,那么下一个摊位为1号摊位.问如果小x初始的时候有T元钱的话,可以购买多少个商品.Input第一行两个整数n,T(1&lt...

2019-07-29 19:38:49 139

空空如也

空空如也

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

TA关注的人

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