<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LeFran的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LeFran</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LeFran]]></copyright><item><title><![CDATA[presto-----grouping(判断分组字段)]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/120090775</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/120090775</guid><author>LeFran</author><pubDate>Fri, 03 Sep 2021 21:39:35 +0800</pubDate><description><![CDATA[grouping判断分组函数 grouping
grouping

grouping(判断分组字段):  主要是用于判断结果是否按照某个或某几个字段的分组操作
grouping 返回一个转换为十进制数字的二进制数值集合，指示分组中存在哪些列。 它必须与GROUPING SETS，ROLLUP，CUBE或GROUP BY结合使用，并且其参数必须与相应的GROUPING SETS，ROLLUP，CUBE或GROUP BY子句中引用的列完全匹配。
对于给定的分组，如果分组中包含相应的列，则将位设置为0，否则将其设]]></description><category></category></item><item><title><![CDATA[presto----grouping sets/cube/rollup 函数]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/120090529</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/120090529</guid><author>LeFran</author><pubDate>Fri, 03 Sep 2021 21:26:09 +0800</pubDate><description><![CDATA[grouping sets/cube/rollupgrouping setscuberollup
grouping sets

当需要对表中各个字段进行分组操作的时候,并且最终需要将各个分组的结果汇总在一个表的时候.此时可以通过grouping sets 来简写.将各个分组操作 放置在grouping sets(…) 中.

select 
store_id,
group_id,
sum(order_amount)
from yp_dwb.dwb_order_detail
group by
	groupin]]></description><category></category></item><item><title><![CDATA[presto时间函数]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/120072081</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/120072081</guid><author>LeFran</author><pubDate>Thu, 02 Sep 2021 23:38:16 +0800</pubDate><description><![CDATA[presto时间函数format格式标识date_format(timestamp,format) ===&gt;varchar(日期对象转换为字符串)date_parse(string,format)==&gt;timestamp(字符串转为日期对象)date_add(unit,value,timestamp)==&gt;same as input(数据加减操作)date_diff(unit,timestamp1,timestamp2)==&gt;bigint(时间差)
format格式
年：%Y
月：%]]></description><category></category></item><item><title><![CDATA[解决缓慢变化维----拉链表]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/120049438</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/120049438</guid><author>LeFran</author><pubDate>Wed, 01 Sep 2021 21:58:22 +0800</pubDate><description><![CDATA[拉链表的实现流程缓慢变化维表数据实现流程(left join  + union all)第一步 更新历史数据(left join)第二步 合并新增及更新的数据(union all)
缓慢变化维
缓慢变化维:
	为了记录数据历史变更数据
	拉链表: 
		采用拉链表的形式维护历史变化信息.
		在原有表增加二个字段(start_time.end_time) 通过这两个字段,
		来维护用户每一段变化的数据经历周期.从而形成拉链数据过程
	优点:实现简单,可以非常方便的维护更多的历史版本数据
	弊端:只要有其中]]></description><category></category></item><item><title><![CDATA[分桶表的介绍使用]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/120049023</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/120049023</guid><author>LeFran</author><pubDate>Wed, 01 Sep 2021 21:24:19 +0800</pubDate><description><![CDATA[分桶表啥是分桶表?咋定义分桶表?咋向分桶表插入数据?分桶表有啥用?
啥是分桶表?

主要是用于分文件的.在创建表的时候 .可以按照某个字段进行分桶操作.并且设置分为
多少个桶,这样在插入数据的时候.翻译后MR会将分桶字段的值作为k2.将分桶数量作为
MR的分区数量.进行划分为多个文件操作.


本质就是 MR的分区操作.

咋定义分桶表?
create table test_buck(id int, name string)
clustered by(id) sorted by (id asc) into ]]></description><category></category></item><item><title><![CDATA[如何处理hive的数据倾斜?]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/120048042</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/120048042</guid><author>LeFran</author><pubDate>Wed, 01 Sep 2021 20:53:13 +0800</pubDate><description><![CDATA[提升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 join

map join: 将核心j]]></description><category></category></item><item><title><![CDATA[hdfs解决小文件吃(元数据)内存问题----归档archive]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/119831360</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/119831360</guid><author>LeFran</author><pubDate>Fri, 20 Aug 2021 21:07:51 +0800</pubDate><description><![CDATA[文件归档工具archive1 原因 :2 解决3 具体使用1 创建档案2 查看归档包中的某一个具体文件的信息
1 原因 :

hdfs本身就不适合小文的存储
小文件无论多小,hdfs的元数据也要记住这个文件,而元数据是存在内存中的…
如果集群中的小文件过多 ,就会造成内存被撑爆.   这就是小文件吃内存问题.

2 解决

将一批小文件归档为一个档案文件 .List item
底层是通过 MapReduce程序将小文件进行合并. 启动yarn集群执行mr程序.
一般以周,月为单位进行归档 .

3 具体使用]]></description><category></category></item><item><title><![CDATA[HDFS --- shell]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/119830577</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/119830577</guid><author>LeFran</author><pubDate>Fri, 20 Aug 2021 20:45:53 +0800</pubDate><description><![CDATA[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 改变文件]]></description><category></category></item><item><title><![CDATA[zookeeper集群中各个角色的作用是什么 ?]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/119742343</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/119742343</guid><author>LeFran</author><pubDate>Mon, 16 Aug 2021 21:33:10 +0800</pubDate><description><![CDATA[zookeeper集群角色的作用架构主节点的作用从节点的作用从节点--Observer的作用选举机制
架构
Zookeeper采用主从模式 ,有主节点和从节点.集群节点一般都是奇数个 .

主节点 :Leader
从节点 : ①Follower(有选举权) ②ObServer(没有选举权)


主节点的作用

1 负责管理整个集群,即保证数据的全局一致性
2 负责  数据事务(增删改) 相关的操作
3 转发 数据非事务 操作给从节点

从节点的作用

1 实时从主节点拉取数据,保持数据的一致性 .
2 负责]]></description><category></category></item><item><title><![CDATA[ZooKeeper shell]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/119741442</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/119741442</guid><author>LeFran</author><pubDate>Mon, 16 Aug 2021 21:07:40 +0800</pubDate><description><![CDATA[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 ]]></description><category></category></item><item><title><![CDATA[pandas-小问题解决]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/119226576</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/119226576</guid><author>LeFran</author><pubDate>Fri, 30 Jul 2021 01:56:52 +0800</pubDate><description><![CDATA[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行索引02
concat-ignore_index=True

concat参数-]]></description><category></category></item><item><title><![CDATA[pandas-pivot_table数据透视表]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/119226394</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/119226394</guid><author>LeFran</author><pubDate>Fri, 30 Jul 2021 01:41:56 +0800</pubDate><description><![CDATA[pivot_table数据透视表API

数据透视表就是基于原数据表、按照一定规则呈现汇总数据

API
df.pivot_table(
    index='列名1', 
    columns='列名2',
    values='列名3', 
    aggfunc='内置聚合函数名'，
    margins=True # 默认是False, 如果为True，就在最后一行和最后一列，按行按列分别执行aggfunc参数规定的聚合函数
)


使用说明：以列名1作为索引，根据列名2进行分组，对列名3使用]]></description><category></category></item><item><title><![CDATA[pandas-groupby分组操作]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/119225117</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/119225117</guid><author>LeFran</author><pubDate>Fri, 30 Jul 2021 01:29:00 +0800</pubDate><description><![CDATA[groupby分组一 aggregate聚合**常用:**1 分组后单列聚合-groupby+聚合函数2 根据多列分组后直接进行聚合计算并返回df3 分组后单列使用多个聚合函数-groupby+agg([])4 分组后对多列分别使用聚合函数-groupby+agg({})5 分组后使用自定义聚合函数-groupby+agg二 transform转换**常用:**1 分组后单列数据转换-groupby+transform('内置聚合函数名')2  分组后使用自定义函数-groupby+transform(自定]]></description><category></category></item><item><title><![CDATA[pandas-Dataframe(取数)]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/118885945</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/118885945</guid><author>LeFran</author><pubDate>Fri, 30 Jul 2021 00:27:28 +0800</pubDate><description><![CDATA[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对象是一种]]></description><category></category></item><item><title><![CDATA[机器学习---k近邻算法---预测facebook签到]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/118952651</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/118952651</guid><author>LeFran</author><pubDate>Wed, 21 Jul 2021 03:42:34 +0800</pubDate><description><![CDATA[k近邻算法---预测facebook签到步骤分析代码实现1.获取数据集2.基本数据处理缩小数据范围选择时间特征去掉签到较少的地方确定特征值和目标值分割数据集3.特征工程 -- 特征预处理(标准化)4.机器学习 -- knn+cv5.模型评估
步骤分析

具体步骤：
1.获取数据集
2.基本数据处理
2.1 缩小数据范围
2.2 选择时间特征
2.3 去掉签到较少的地方
2.4 确定特征值和目标值
2.5 分割数据集
3.特征工程 – 特征预处理(标准化)
4.机器学习 – knn+cv
5.模型评估

代码]]></description><category></category></item><item><title><![CDATA[机器学习(数据集划分/准确率评估/归一化/标准化/超参数搜索和网络搜索)]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/118951391</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/118951391</guid><author>LeFran</author><pubDate>Wed, 21 Jul 2021 03:17:25 +0800</pubDate><description><![CDATA[机器学习算法流程1 (数据集)数据集的划分 :避免过拟合(避免上线尴尬)2 (模型评估)分类算法的评估:计算准确率3 (特征工程)归一化和标准化: 缩放,避免量纲大小对特征进行影响4 (模型训练)超参数与交叉验证SKlearn中的超参数搜索(网络搜索)与交叉验证
算法流程


获取数据
数据基本处理
特征工程
机器学习(模型训练)
模型评估

1 (数据集)数据集的划分 :避免过拟合(避免上线尴尬)

测试集  最好只能用一次
一般将数据中的70%-80%作为训练数据，将剩余的作为测试数据
注意:


在训]]></description><category></category></item><item><title><![CDATA[Scrapy中的crawlspider爬虫]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/118640227</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/118640227</guid><author>LeFran</author><pubDate>Sat, 10 Jul 2021 20:42:52 +0800</pubDate><description><![CDATA[crawlspider介绍创建模板具体参数和解释重点在rules中：
介绍
Scrapy框架中分两类爬虫

Spider类和CrawlSpider类。


crawlspider是Spider的派生类(一个子类)，Spider类的设计原则是只爬取start_url列表中的网页，而CrawlSpider类定义了一些规则(rule)来提供跟进link的方便的机制，从爬取的网页中获取link并继续爬取的工作更适合。

创建模板

创建 crawlspider 项目
scrapy genspider -t craw]]></description><category></category></item><item><title><![CDATA[爬虫--Scrapy框架以及具体使用]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/118572016</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/118572016</guid><author>LeFran</author><pubDate>Fri, 09 Jul 2021 02:24:37 +0800</pubDate><description><![CDATA[Scrapy框架框架的模块和流程scrapy的三个内置对象爬虫框架项目
框架的模块和流程


spider:爬虫模块,指定起始页的url地址,以及去构造请求对象和提取数据
Engine: 引擎模块,负责每个模块之间的数据的传递(Request,Response,Item)
Scheduler: 调度器,存储Request对象的,里面维护一个列表,数据取出来之后,列表中这个数据就不存在了.
[1,2,3] 取出来,这个时候列表中就剩下[2,3]
-Downloader:下载器,负责发送请求获取响应,Scrap]]></description><category></category></item><item><title><![CDATA[文件操作--mode模式--读写操作]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/118558385</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/118558385</guid><author>LeFran</author><pubDate>Wed, 07 Jul 2021 22:02:50 +0800</pubDate><description><![CDATA[模式
描述




r
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。


rb
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。


r+
打开一个文件用于读写。文件指针将会放在文件的开头。


rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。


w
打开一个文件只用于写入。如果该文件已存在则打开文件，并从开头开始编辑，即原有内容会被删除。如果该文件不存在，创建新文件。


wb
以二进制格式打开一个文件只用于写入。如果该文件已...]]></description><category></category></item><item><title><![CDATA[爬虫-百度贴吧爬取图片(requests)]]></title><link>https://blog.youkuaiyun.com/LeFran/article/details/118557764</link><guid>https://blog.youkuaiyun.com/LeFran/article/details/118557764</guid><author>LeFran</author><pubDate>Wed, 07 Jul 2021 21:40:30 +0800</pubDate><description><![CDATA[requests模块使用:
1 导包 import requests
2 准备url地址
(请求头: 1 User-Agent 2 Cookie 3 Referer)
3 发送请求获取响应 requests.get(url)
4 提取数据
5 保存

"""
1 先进入到某一个贴吧  第一页(对一个贴吧的url地址发送请求获取响应)
2 进入到贴吧页面中 要去获取数据
    - 贴子的标题
    - 帖子的详情页url地址
3 在对帖子 详情页url地址发送请求 获取到想详情页的响应
4 在对详情页的.]]></description><category></category></item></channel></rss>