自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 presto-----grouping(判断分组字段)

grouping判断分组函数 groupinggroupinggrouping(判断分组字段): 主要是用于判断结果是否按照某个或某几个字段的分组操作grouping 返回一个转换为十进制数字的二进制数值集合,指示分组中存在哪些列。 它必须与GROUPING SETS,ROLLUP,CUBE或GROUP BY结合使用,并且其参数必须与相应的GROUPING SETS,ROLLUP,CUBE或GROUP BY子句中引用的列完全匹配。对于给定的分组,如果分组中包含相应的列,则将位设置为0,否则将其设

2021-09-03 21:39:35 1321

原创 presto----grouping sets/cube/rollup 函数

grouping sets/cube/rollupgrouping setscuberollupgrouping sets当需要对表中各个字段进行分组操作的时候,并且最终需要将各个分组的结果汇总在一个表的时候.此时可以通过grouping sets 来简写.将各个分组操作 放置在grouping sets(…) 中.select store_id,group_id,sum(order_amount)from yp_dwb.dwb_order_detailgroup by groupin

2021-09-03 21:26:09 1588

原创 presto时间函数

presto时间函数format格式标识date_format(timestamp,format) ===>varchar(日期对象转换为字符串)date_parse(string,format)==>timestamp(字符串转为日期对象)date_add(unit,value,timestamp)==>same as input(数据加减操作)date_diff(unit,timestamp1,timestamp2)==>bigint(时间差)format格式年:%Y月:%

2021-09-02 23:38:16 1490

原创 解决缓慢变化维----拉链表

拉链表的实现流程缓慢变化维表数据实现流程(left join + union all)第一步 更新历史数据(left join)第二步 合并新增及更新的数据(union all)缓慢变化维缓慢变化维: 为了记录数据历史变更数据 拉链表: 采用拉链表的形式维护历史变化信息. 在原有表增加二个字段(start_time.end_time) 通过这两个字段, 来维护用户每一段变化的数据经历周期.从而形成拉链数据过程 优点:实现简单,可以非常方便的维护更多的历史版本数据 弊端:只要有其中

2021-09-01 21:58:22 413

原创 分桶表的介绍使用

分桶表啥是分桶表?咋定义分桶表?咋向分桶表插入数据?分桶表有啥用?啥是分桶表?主要是用于分文件的.在创建表的时候 .可以按照某个字段进行分桶操作.并且设置分为多少个桶,这样在插入数据的时候.翻译后MR会将分桶字段的值作为k2.将分桶数量作为MR的分区数量.进行划分为多个文件操作.本质就是 MR的分区操作.咋定义分桶表?create table test_buck(id int, name string)clustered by(id) sorted by (id asc) into

2021-09-01 21:24:19 969

原创 如何处理hive的数据倾斜?

提升join的查询效率q: 为什么传统默认join效率低?小表 join 大表(Map join)中型表 join大表 (bucket map join)大表 join大表(SMB map join)q: 为什么传统默认join效率低?默认执行的时候 .执行join的sql. 走MR的时候 最终是在 reduce端进行join操作 .出现问题:1 所有的join连接工作 都是交给reduce端.压力比较大.2 可能会出现数据倾斜问题解决: 变为map joinmap join: 将核心j

2021-09-01 20:53:13 325

原创 hdfs解决小文件吃(元数据)内存问题----归档archive

文件归档工具archive1 原因 :2 解决3 具体使用1 创建档案2 查看归档包中的某一个具体文件的信息1 原因 :hdfs本身就不适合小文的存储小文件无论多小,hdfs的元数据也要记住这个文件,而元数据是存在内存中的…如果集群中的小文件过多 ,就会造成内存被撑爆. 这就是小文件吃内存问题.2 解决将一批小文件归档为一个档案文件 .List item底层是通过 MapReduce程序将小文件进行合并. 启动yarn集群执行mr程序.一般以周,月为单位进行归档 .3 具体使用

2021-08-20 21:07:51 246

原创 HDFS --- shell

hdfs---shell查看指定目录下的信息hadoop fs -ls创建文件夹hadoop fs -mkdir [-p] 上传文件hadoop fs -put src(本地) dst(hdfs)下载文件hadoop fs -put dst(hdfs) src(本地)追加内容到文件尾部 appendToFilehadoop fs -appendToFile 2.txt 3.txt /1.txt文件内容的查看-cat / -tail权限 拥有者 所属组修改chgrp 更改文件组的关联chmod 改变文件

2021-08-20 20:45:53 206

原创 zookeeper集群中各个角色的作用是什么 ?

zookeeper集群角色的作用架构主节点的作用从节点的作用从节点--Observer的作用选举机制架构Zookeeper采用主从模式 ,有主节点和从节点.集群节点一般都是奇数个 .主节点 :Leader从节点 : ①Follower(有选举权) ②ObServer(没有选举权)主节点的作用1 负责管理整个集群,即保证数据的全局一致性2 负责 数据事务(增删改) 相关的操作3 转发 数据非事务 操作给从节点从节点的作用1 实时从主节点拉取数据,保持数据的一致性 .2 负责

2021-08-16 21:33:10 707

原创 ZooKeeper shell

ZooKeeper shell客户端连接shell基本操作创建节点create [-s] [-e] path data acl读取节点ls path [watch]ls2 path [watch]get path [watch]更新节点set path data [version]删除节点delete path [version]rmr pathquota (限制节点)set quota -n|-b val path列出命令历史history客户端连接zookeeper/bin/zkCli.sh

2021-08-16 21:07:40 179

原创 pandas-小问题解决

pandasconcat-ignore_index=Trueconcat参数-reset_index(drop=True)重置索引df 随机数据相同df.pivot_table透视表 pivot函数df 插入df 多列排序df 去重df 删除列df 添加列df 运算groupby-复合索引groupby-聚合函数merage-合并series-运算排序-nlargest长数据变宽数据-melt参数自定义df行索引01自定义df行索引02concat-ignore_index=Trueconcat参数-

2021-07-30 01:56:52 287 1

原创 pandas-pivot_table数据透视表

pivot_table数据透视表API数据透视表就是基于原数据表、按照一定规则呈现汇总数据APIdf.pivot_table( index='列名1', columns='列名2', values='列名3', aggfunc='内置聚合函数名', margins=True # 默认是False, 如果为True,就在最后一行和最后一列,按行按列分别执行aggfunc参数规定的聚合函数)使用说明:以列名1作为索引,根据列名2进行分组,对列名3使用

2021-07-30 01:41:56 302

原创 pandas-groupby分组操作

groupby分组一 aggregate聚合**常用:**1 分组后单列聚合-groupby+聚合函数2 根据多列分组后直接进行聚合计算并返回df3 分组后单列使用多个聚合函数-groupby+agg([])4 分组后对多列分别使用聚合函数-groupby+agg({})5 分组后使用自定义聚合函数-groupby+agg二 transform转换**常用:**1 分组后单列数据转换-groupby+transform('内置聚合函数名')2 分组后使用自定义函数-groupby+transform(自定

2021-07-30 01:29:00 1166

原创 pandas-Dataframe(取数)

DataFrameDataFrame是什么DataFrame的常用APIDataFrame局部数据的APIloc 和iloc(重要)功能:区别:df.loc和df.iloc取1行或多行数据df.loc和df.iloc取1列或几列数据df.head 和 df.tail根据列名查看一列或多列数据DataFrame是什么(有行有列的数据就是df)Dataframe简称df、或df数据集df = pd.read_csv(’…/xxx.csv’)`返回的是dataframe对象dataframe对象是一种

2021-07-30 00:27:28 1444

原创 机器学习---k近邻算法---预测facebook签到

k近邻算法---预测facebook签到步骤分析代码实现1.获取数据集2.基本数据处理缩小数据范围选择时间特征去掉签到较少的地方确定特征值和目标值分割数据集3.特征工程 -- 特征预处理(标准化)4.机器学习 -- knn+cv5.模型评估步骤分析具体步骤:1.获取数据集2.基本数据处理2.1 缩小数据范围2.2 选择时间特征2.3 去掉签到较少的地方2.4 确定特征值和目标值2.5 分割数据集3.特征工程 – 特征预处理(标准化)4.机器学习 – knn+cv5.模型评估代码

2021-07-21 03:42:34 334

原创 机器学习(数据集划分/准确率评估/归一化/标准化/超参数搜索和网络搜索)

机器学习算法流程1 (数据集)数据集的划分 :避免过拟合(避免上线尴尬)2 (模型评估)分类算法的评估:计算准确率3 (特征工程)归一化和标准化: 缩放,避免量纲大小对特征进行影响4 (模型训练)超参数与交叉验证SKlearn中的超参数搜索(网络搜索)与交叉验证算法流程获取数据数据基本处理特征工程机器学习(模型训练)模型评估1 (数据集)数据集的划分 :避免过拟合(避免上线尴尬)测试集 最好只能用一次一般将数据中的70%-80%作为训练数据,将剩余的作为测试数据注意:在训

2021-07-21 03:17:25 1099 1

原创 Scrapy中的crawlspider爬虫

crawlspider介绍创建模板具体参数和解释重点在rules中:介绍Scrapy框架中分两类爬虫Spider类和CrawlSpider类。crawlspider是Spider的派生类(一个子类),Spider类的设计原则是只爬取start_url列表中的网页,而CrawlSpider类定义了一些规则(rule)来提供跟进link的方便的机制,从爬取的网页中获取link并继续爬取的工作更适合。创建模板创建 crawlspider 项目scrapy genspider -t craw

2021-07-10 20:42:52 267 1

原创 爬虫--Scrapy框架以及具体使用

Scrapy框架框架的模块和流程scrapy的三个内置对象爬虫框架项目框架的模块和流程spider:爬虫模块,指定起始页的url地址,以及去构造请求对象和提取数据Engine: 引擎模块,负责每个模块之间的数据的传递(Request,Response,Item)Scheduler: 调度器,存储Request对象的,里面维护一个列表,数据取出来之后,列表中这个数据就不存在了.[1,2,3] 取出来,这个时候列表中就剩下[2,3]-Downloader:下载器,负责发送请求获取响应,Scrap

2021-07-09 02:24:37 515 1

原创 文件操作--mode模式--读写操作

模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+打开一个文件用于读写。文件指针将会放在文件的开头。rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。wb以二进制格式打开一个文件只用于写入。如果该文件已...

2021-07-07 22:02:50 1448

原创 爬虫-百度贴吧爬取图片(requests)

requests模块使用:1 导包 import requests2 准备url地址(请求头: 1 User-Agent 2 Cookie 3 Referer)3 发送请求获取响应 requests.get(url)4 提取数据5 保存"""1 先进入到某一个贴吧 第一页(对一个贴吧的url地址发送请求获取响应)2 进入到贴吧页面中 要去获取数据 - 贴子的标题 - 帖子的详情页url地址3 在对帖子 详情页url地址发送请求 获取到想详情页的响应4 在对详情页的.

2021-07-07 21:40:30 348 3

原创 爬虫-有道翻译(requests)

import requestsimport time, random, hashlibfrom pprint import pprintfrom jsonpath import jsonpathclass YouDaoSpider(object): def __init__(self,word): # 准备url地址 self.url = "https://fanyi.youdao.com/translate_o?smartresult=dict&

2021-07-07 21:11:19 309

原创 爬虫-selenium的其他的使用方法

selenium自动化测试工具selenium标签页的切换switch_to切换frame标签selenium对cookie的处理selenium标签页的切换当selenium控制浏览器打开多个标签页.使用selenium控制浏览器在不同的标签页中进行切换# 1. 获取当前所有的标签页的句柄构成的列表current_windows = driver.window_handles# 2. 根据标签页句柄列表索引下标进行切换driver.switch_to.window(current_win

2021-07-04 16:27:56 201 2

原创 爬虫-提取数据-selenium工具的基本使用

selenium自动化测试工具提取数据selenium工具的基本使用selenium实例化driver对象的属性和方法实例化对象driver定位标签元素获取标签对象的方法标签对象提取文本内容和属性值总结selenium工具的基本使用使用步骤:从selenium中导入webdriver创建对应的webdriver对象调用driver对象的get方法传入要请求的url地址,去请求对应的url地址调用driver中提供的定位标签和提取数据的方法,定位标签操作或者提取数据退出driver。# 1

2021-07-04 16:21:05 232 2

原创 爬虫-Xpath-数据提取

Xpath数据提取xpath基本介绍和使用xpath中常用的获取节点的表达式xpath中常用的获取特定节点的表达式XPath (XML Path Language) 是一门在 HTML\XML 文档中查找信息的语言,可用来在 HTML\XML 文档中对元素和属性进行遍历。xpath基本介绍和使用XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。使用chrome插件选择标签时候,选中时,选中的标签会添加属性clas

2021-07-02 02:04:01 3298 1

原创 爬虫-request-模块请求参数

request请求参数headers 请求头params 请求参数proxies 代理ipcookie web状态信息1 headers 中携带cookie2 cookies参数3 使用sessionverify 安全验证timeout 网络超时参数retrying 重试次数post/get请求 (params参数)headers 请求头伪装的更像是一个正常的浏览器在请求服务.headers字典是从浏览器群中的请求头信息中复制过来的.response = requests.get(url, hea

2021-06-30 20:18:49 697 1

原创 mysql高阶-窗口函数避坑总结方法技巧

窗口函数避坑总结方法技巧一 sql五字句顺序二 sql 窗口字段顺序(坑)1 不能使用窗口函数的情况① 不能在where 字句中使用窗口函数 :窗口函数于where后执行② 不能在having字句中使用窗口函数 : 窗口函数于having后执行③ 不能在group by 中使用窗口函数 : 解决方法 使用子查询2窗口函数与group by一起使用3rank时使用聚合函数4利用group by 计算环比5对group by 分组后的数据使用 partition by小结三 排序函数四 分析函数五 order

2021-06-27 16:14:24 4156

原创 mysql高阶-窗口函数-排序函数

窗口函数-排序函数1 RANK() OVER (ORDER BY ...):并列情况序号不连续2 DENSE_RANK() OVER (ORDER BY ...):返回'连续'序号3 ROW_NUMBER() OVER (ORDER BY ...):返回连续唯一的行号4 rank(),dense_rank(),row_number()的区别,比较,图示5 NTILE(X) OVER (ORDER BY ...):将数据分组,并为每组添加一个相同的序号小结1 RANK() OVER (ORDER BY …)

2021-06-27 15:51:41 137

原创 mysql高阶-窗口函数-分析函数

窗口函数-分析函数1 lead(x,y,z) 函数:领先,找行号更大的数据 返回当前行后面的值2 lag(x,y,z) 函数:落后,找行号更小的数据 返回当前行之前的值3 FIRST_VALUE(expr) 返回指定列的第一个值4 LAST_VALUE(expr) 返回指定列的最后一个值5 (巨重要)nth_value(x,n) 函数返回X列,按指定顺讯的第n个值小结1 lead(x,y,z) 函数:领先,找行号更大的数据 返回当前行后面的值LEAD(x,y,z) 函数: 领先,找行号

2021-06-27 15:22:15 199

原创 前段jQuery的介绍和使用

前端开发三大块1、HTML:负责网页结构2、CSS:负责网页样式3、JavaScript:负责网页行为, 比如:网页与用户的交互效果jQuery:定义jQuery是对JavaScript的封装,它是免费、开源的JavaScript函数库,jQuery 极大地简化了 JavaScript 编程。作用jQuery和JavaScript它们的作用一样,都是负责网页行为操作,增加网页和用户的交互效果的,只不过jQuery简化了JavaScript编程,jQuery实现交互效果更简单。<!

2021-06-20 14:42:08 110

原创 前段JavaScript的基本介绍和使用

前端开发三大块1、HTML:负责网页结构2、CSS:负责网页样式3、JavaScript:负责网页行为, 比如:网页与用户的交互效果JavaScript的定义:JavaScript是运行在浏览器端的脚本语言, 是由浏览器解释执行的, 简称js.它能够让网页和用户有交互功能, 增加良好的用户体验效果。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <

2021-06-20 14:38:33 162

原创 前段css的介绍和使用

css定义:css(Cascading Style Sheet)层叠样式表,它是用来美化页面的一种语言。1美化界面, 比如: 设置标签文字大小、颜色、字体加粗等样式。2控制页面布局, 比如: 设置浮动、定位等样式。代码示例:div{ width:100px; height:100px; background:gold; }<!DOCTYPE html><html lang="en"><head> <m

2021-06-20 14:34:51 122

原创 常用的html标签使用

标签不区分大小写,但是推荐使用小写。根据标签的书写形式,标签分为双标签(闭合标签)和单标签(空标签)双标签是指由开始标签和结束标签组成的一对标签,这种标签允许嵌套和承载内容,比如: div标签单标签是一个标签组成,没有标签内容, 比如: img标签<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" cont.

2021-06-20 14:31:36 167

原创 数据埋点大概梳理

数据埋点为什么要埋点埋点形式埋点的流程规范1规划评审2 技术开发3 埋点验证4 发布上线5 监测评估埋点实践(最重要)埋点数据埋点位置为什么要埋点在实际的业务问题中,难免会遇到问题: 分析时缺少关键的数据指标,或者数据指标的维度和属性满足不了分析需求.所以要进行埋点.埋点是数据采集的专用术语,在数据驱动型业务中,如营销策略、产品迭代、业务分析、用户画像等,都依赖于数据提供决策支持,希望通过数据来捕捉特定的用户行为,如按钮点击量、阅读时长等统计信息。因此,数据埋点可以简单理解为:针对特定业务场景进行数据

2021-06-20 14:21:45 835

原创 闭包和装饰器

闭包和装饰器闭包装饰器闭包定义: 在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。构成条件:1 在函数嵌套(函数里面在定义函数)的前提下2 内部函数使用了外部函数的变量(还包括外部函数的参数)3 外部函数返回了内部函数栗子# 闭包形式 外部函数定义自己的逻辑 内部函数接着处理外部函数的数据 后面调用直接接受内部函数对象def func_out(): # 函数func_out定义了一个name

2021-06-19 08:19:17 166

原创 HCP/HTTP 静态WEB服务器

TCP/HTTPTCPsocketTCP 服务端开发流程HTTPULR(网络资源地址)HTTP 响应报文TCPTCP 的英文全拼(Transmission Control Protocol)简称传输控制协议,它是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP通信步骤:创建连接传输数据关闭连接socket通信数据使用socket完成连接, 负责进程之间的网络数据传输.socket (简称 套接字) 是进程之间通信一个工具,好比现实生活中的插座,所有的家用电器要想工作都是基于

2021-06-15 01:28:44 787 1

原创 列表集合字典推导式

列表集合字典推导式列表推导式字典推导式集合推导式推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规律的列表或控制一个有规律列表)的结构体。 共有三种推导:列表推导式、集合推导式、字典推导式。[1, 2, 3] 推导式 [1, 4, 9]列表推导式语法:变量名 = [表达式 for 变量 in 列表 for 变量 in 列表]变量名 = [表达式 for 变量 in 列表 if 条件]#

2021-06-11 01:12:39 305 2

原创 Python拆包 (字典和元祖)

Python拆包元组的拆包过程字典的拆包过程栗子Python拆包:就是把元组或字典中的数据单独的拆分出来,然后赋予给其他的变量。拆包: 对于函数中的多个返回数据, 去掉元组, 列表 或者字典直接获取里面数据的过程。元组的拆包过程def func(): # 经过一系列操作返回一个元组 return 100, 200 # tuple元组类型的数据# 定义两个变量接收元组中的每个数组(拆包)num1, num2 = func()# 打印num1和num2print(num1)

2021-06-11 00:58:36 3798 5

原创 函数的参数类型不定长参数(*args/**kwargs)

函数的参数类型不定长参数不定长元组参数不定长关键字参数栗子不定长参数也叫可变参数。用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,可用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。不定长元组参数def user_info(*args): # print(args) # 元组类型数据,对传递参数有顺序要求 print(f'我的名字{args[0]},今年{args[1]}岁了,住在{args[2]}')# 调用函数,传递参数

2021-06-11 00:54:41 564

原创 python(异常)常用

异常栗子语法try: 可能发生错误的代码except 异常类型: 如果捕获到该异常类型执行的代码捕获指定异常 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。一般try下方只放一行尝试执行的代码。try: print(num)except NameError: print('有错误')捕获多个指定异常当捕获多个异常时,可以把要捕获的异常类型的名字,放到except 后,并使用元组的方式进行书写。try: p

2021-06-11 00:17:41 103

原创 python (类方法和静态方法)

类方法和静态方法类方法静态方法类方法需要用装饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数。使用场景:当方法中 需要使用类对象 (如访问私有类属性等)时,定义类方法类方法一般和类属性配合使用class Dog(object): __tooth = 10 @classmethod def get_tooth(cls): return cls.__toothwangcai = Dog()

2021-06-11 00:08:28 133 2

空空如也

空空如也

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

TA关注的人

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