- 博客(44)
- 收藏
- 关注
原创 经典SQL50题
建库建表和插入数据# 建库create database practice_sql50;use practice_sql50;# 学生表create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10));insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into Student values('..
2022-02-11 16:31:59 414
原创 cdh集群hive表新增字段测试
问题:现有分区表添加新字段后,往分区表插入数据,插入的数据有对新字段赋值,hive下查询分区表新添加字段出现新增字段查询结果为null,而impala下查询新增字段有值。目的:为了验证Hive下的分区表新增字段,然后对新增字段进行赋值,通过hive或者impala连接串的方式查询表中的的新增字段,确认新增字段是否有值。1、创建表1)在hive下建表脚本如下:create table adp_usr.t_test_20220119(id int, name string, age int)
2022-01-21 09:19:16 1307 1
原创 拉链表(SCD2)的操作
什么时候使用拉链表?当数据存在有变更的情况时,可以采用渐变维(SCD)模型来解决。这里推荐使用SCD2拉链 表。拉链表既可以反应数据的历史状态,又能在最大程度上节省存储。 拉链表的实现需要在原始字段基础上增加两个新字段:start_date(表示该条记录的生命周期开始时间——周期快照时的状态) end_date(该条记录的生命周期结束时间)拉链表插入数据流程 ODS抽取新增/变更数据; 重建临时表tmp; 合并昨日增量数据(ods表)与历史数据(拉链表)到临时表..
2021-10-24 20:43:04 1346
原创 Hive-DQL语句
1、内置运算符查看函数show functions;desc functions extended +;关系运算符# 大小比较select 1>1;select 1=1;select 1>=1;# 空值判断select 'asd' is null;select 'asd' is not null;# 模糊查询select 'itcast' like 'it____'; # _代表匹配一个字符select 'itcast' like 'it%'; # .
2021-10-24 20:28:46 278
原创 Hive的数据数据存储格式及优化
Hive的数据存储格式 列式存储、行式存储 Hive中表的数据存储格式,不是只支持text文本格式,还支持其他很多格式。 建表的时候通过==STORED AS 语法指定。如果没有指定默认都是textfile(行存储)==。 Hive中主流的几种文件格式。 textfile 文件格式 ORC、Parquet 列式存储格式。 都是列式存储格式,底层是以二进制形式存储。数据存储效率极高,查询方便。 栗子 分别使用3种
2021-10-21 20:46:15 912
原创 hive中的HQL的基础语法
数据库操作 数据库创建(重点) -- 数据库创建create database python;-- 添加描述信息和属性值create database python_db comment 'python_database' with dbproperties('name'='python');-- 可以指定数据库的位置create database python_location location '/ming';create database python_db comme
2021-10-17 20:51:46 396
原创 Hadoop服务和Zookeeper服务中的各个交互流程
1、ResourceManager和NameManager的交互 流程 1)由客户端向RM发送计算任务的请求, 2)RM的APPlocationManager接收计算的任务,然后在namemanager中生成一个applocationmaster 3)applocationmaster接收请求后,向RM中的ResourceScheduler申请计算资源,申请成功后告知applocationmaster 4)applocationmaster接收到申请成功的消息后,通知NM
2021-10-13 15:13:55 684
原创 shell文件操作命令
1、文件操作的两种方式:1、使用hadoop fshadoop fs -ls /itcast #对hdfs中的文件进行操作hadoop fs -ls file:/// # 对linux系统本地文件进行操作2、使用hdfs dfshdfs dfs -ls /itcast #只能对hdfs中的文件进行操作2、shell命令选项 选项名称 使用格式 含义 -ls ...
2021-10-09 18:27:15 1336
原创 Hadoop3.3.0--Linux编译安装
基础环境:Centos 7.7编译环境软件安装目录mkdir -p /export/serverHadoop编译安装 安装编译相关的依赖 yum install gcc gcc-c++ make autoconf automake libtool curl lzo-devel zlib-devel openssl openssl-devel ncurses-devel snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop
2021-10-08 20:04:14 774 1
原创 linux下zookeeper安装
1、统一软件安装路径/export/server #软件安装目录/export/software #安装包的目录/export/data #软件运行数据保存的目录/export/logs mkdir -p /export/servermkdir -p /export/software mkdir -p /export/datamkdir -p /export/logs2、Jdk的安装#上传安装包到/export/server下jdk-8u6.
2021-10-08 20:01:30 181
原创 虚拟机创建教程
1、安装VMware Workstation Pro虚拟机软件2、打开VMware Workstation Pro软件2.1选中虚拟网络编辑器,进行配置2.2 在窗口中选中NAT模式,设置子网和子网掩码2.3点击NAT设置,修改网关IP,因为上步操作已经使用192.168.88.0作为子网IP,因此最后不能在使用0,可以使用192.168.88.1(其他数字都可以不要超过254)2.4 点击DHCP设置按钮进行起始IP地址和结束IP地址的设置192.168.88.(...
2021-09-28 20:44:25 2382 1
原创 python之多场景项目
1、数据推断1.1 业务背景(缺失关键指标)疫情期间,一家印度外卖餐厅想通过数据分析,数据挖掘提升销量,但是在历史数据中缺少了很重要的一个维度,用餐人数订单表 菜单表根据历史订单数据,推断出每个订单的用餐人数订单表: Order_Number 订单编号 Order_Date 订单日期 Item_Name 商品名称 Quantity 商品数量 Product_Price 商品价格 Total_products 订单商品数量
2021-09-14 16:04:45 256
原创 多场景项目之指标计算
1、数据指标 数据指标概念:可将某个事件量化,且可形成数字,来衡量目标。 数据指标的作用:当我们确定下来一套指标,就可以用指标来衡量业务,判断业务好坏 1.1 常用业务指标活跃用户指标:一个产品是否成功,如果只看一个指标,那么这个指标一定是活跃用户数 日活(DAU):一天内日均活跃设备数 月活(MAU):一个月内的活跃设备数 周活跃数(WAU):一周内活跃设备数 活跃度(DAU/MAU):体现用户的总体粘度,衡量期间内每日活跃用户的交叉重合情况
2021-09-14 15:25:17 695
原创 机器学习--(线性回归&逻辑回归)算法
1、线性回归算法y = kx+b线性回归 线性关系 非线性关系 损失函数(最小二乘法)j(w) = (h(x)-y)^2=(w*x-y)^2目标函数:最开始预测出来的模型(w已知)起始点是已知的(目标函数是已知=>w已知)第一个w是已知的,损失函数求导计算下一个w:当前的w-当前求导之后的函数上*学习率(步长)=>已知学习率不能太大也不能太小 太大=>就会跳过最低点 太小=>迭代次数多 线性回归优化
2021-09-12 21:30:05 584
原创 机器学习-集成算法
算法思想:传统机器学习算法 (例如:决策树,逻辑回归等) 的目标都是寻找一个最优分类器尽可能的将训练数据分开。集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。1、集成学习分类之Bagging算法(并行)1.1 Bootstrap sampling自助采样模型的评估方法中有留一法(将数据集划分为两个互不相交的集合,一个做测试集,一个做训练集)和交叉验证方法(将数据分成k个大小相似互不相交的子集,每次使用k-1个子集做训练集
2021-09-12 21:08:51 1112
原创 机器学习-决策树算法
概念:是一种树形结构,本质是一颗由多个判断节点组成的树 其中每个内部节点表示一个属性上的判断, 每个分支代表一个判断结果的输出, 最后每个叶节点代表一种分类结果。通过分析可知:决策树是非参数学习算法 决策树可以解决分类问题 决策树天然可以解决多分类问题 决策树可以解决回归问题:落在叶子节点(对应图中的A、B、C三点)的数据的平均值作为回归的结果 决策树可以应用于信用卡评级的案例中,生成相应的分类规则。1、熵 定义 熵在信息论中代表随机变量不确定度的度量。 熵越大,数据
2021-09-12 20:46:25 2989 1
原创 Python数据可视化
1、Matplotlib绘图1.1 matplotlib基本用法状态接口import pandas as pdimport matplotlib.pyplot as pltx = [-3, 5, 7] #准备数据的x轴坐标y = [10, 2, 5] #准备数据的y轴坐标plt.figure(figsize=(15,3)) #figure 创建画布 figsize指定画布大小plt.plot(x, y) #plot 绘图plt.xlim(0, 10) #xlim 设置x轴坐标
2021-09-08 11:42:11 1955
原创 Pandas数据处理
1、Apply自定义函数1.1 apply介绍pandas 的 apply() 函数可以作用于 Series 或者整个 DataFrame,功能也是自动遍历整个 Series 或者 DataFrame, 对每一个元素运行指定的函数。 Pandas提供了很多数据处理的API,但当提供的API不能满足需求的时候,需要自己编写数据处理函数, 这个时候可以使用apply函数 apply函数可以接收一个自定义函数, 可以将DataFrame的行/列数据传递给自定义函数处理 apply
2021-09-08 10:47:58 885
原创 机器学习----聚类算法
1、聚类算法介绍1.1 聚类算法在现实中的应用 用户画像,广告推荐,搜索引擎的流量推荐,恶意流量识别 基于位置信息的商业推送,新闻聚类,筛选排序 图像分割,降维,识别;离群点检测;信用卡异常消费;发掘相同功能的基因片段 1.2 聚类算法的概念聚类算法:一种典型的无监督学习算法,主要用于将相似的样本自动归到一个类别中。在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算方法,会得到不同的聚类结果,常用的相似度计算方法有欧式距离法。1
2021-09-07 21:00:06 8143
原创 机器学习--K-近邻算法(KNN)
1、K近邻算法的特点k-近邻算法,也叫KNN算法(K-Nearest Neihbor,KNN),是一个非常适合入门的算法,拥有如下特性: 适用于分类问题,尤其是二分类,当然也可以用来预测回归问题 思想极度简单,应用数学知识少(近乎为零) 对于很多不擅长数学的小伙伴十分友好,KNN算法几乎用不到数学专业知识 机器学习算法的hello world算法 效果好 虽然算法简单,但效果也不错 缺点也是存在的,后面会进行讲解
2021-09-07 11:34:21 9749 1
原创 Pandas数据清洗
1、数据组合1.1 concat【重点】 pandas函数,pd.concat() 既可以纵向连接(默认,axis=0或者axis='index')也可以横向连接(axis=1或者axis='columns') 可以连接多个对象(多个df) 纵向连接:N个df从上到下一个摞一个 默认外连接(join='outer'),列名相同的数据会合并到一列,列名不同的数据用NaN填充 内连接(join='inner'),只保留数据中共有的部分
2021-09-06 16:27:15 1028
原创 Pandas 入门
# 导入包import pandas as pd# 加载数据df=pd.read_csv('data/movie.csv')1、查看部分数据【重要】1.1加载列数据# 加载一列数据df['列名']country_df=df['country'] # 查看列数据country_df# 加载多列数据df[['列名1','列名2','列名3'...]]country_df=df['country', 'continent', 'year', 'lifeExp', 'pop', .
2021-09-04 10:02:36 269
原创 Pandas速查手册
# 缩写说明# df:任意的Pandas DataFrame对象# s:任意的Pandas Series对象import pandas as pd # pip install pandas# 1. 导入数据pd.read_csv(filename) #从CSV文件导入数据pd.read_table(filename) #从限定分隔符的文本文件导入数据pd.read_excel(filename) #从Excel文件导入数据pd.read_sql(query, connection_obj.
2021-09-01 08:53:32 304
原创 Jupyter Notebook的使用
1、启动Jupyter Notebook1..1通过Anaconda启动 Jupyter Notebook这种方式直接启动Jupyter notebook,无法打开当前所在磁盘以外的其他磁盘上的文件1.2推荐通过终端启动 Jupyter Notebook这种方式先启动cmd,通过切换虚拟环境和磁盘位置,再启动Jupyter notebook在启动anaconda提供的CMD启动后,输入命令如下# 可选操作,切换虚拟环境,使用不同的python解释器和包conda activa.
2021-08-31 09:07:17 440
原创 Anaconda的使用
1、Anaconda安装可以在官网上下载对应平台的安装包 访问https://www.anaconda.com/products/individual,如下图所示点击下载1.1 根据操作系统选择相应的版本下载1.2 点击安装1.3 选择操作系统中的用户1.4 选择安装路径1.5 建议都勾选,自动添加环境变量,自动安装python1.6 等待安装1.7 安装完毕1.8 勾选使用个人版1.9安装好之后部分版本不会在你的...
2021-08-28 21:15:38 5154
原创 Python中的线程与进程
1、进程1.1进程的创建'''1、导入进程包2、创建子进程3、启动子进程'''import multiprocessingimport timedef music(count): for i in range(count): print('听音乐') time.sleep(0.5)def coding(count): for i in range(count): print('打代码') tim
2021-08-26 14:39:14 153
原创 网络编程--tcp客户端和tcp服务器端
1、tcp客户端import socket# 1、创建客户端套接字对象(IPv4:socket.AF_INET, TCP:socket.SOCK_STREAM)tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 2、和服务器端建立套接字连接tcp_client_socket.connect(('192.168.15.62', 8080))# 3、发送数据到服务器端data = '?'.encod
2021-08-22 16:41:13 558
原创 Python之服务器端以及web应用程序开发
1、web服务器端web.py# 1、导入包import socketimport threadingimport framework# 2、定义一个HTTPWebServer类class HTTPWebServer(object): # 3、定义一个__init__初始化函数 def __init__(self): # 4、创建套接字对象 tcp_server_socket = socket.socket(socket.AF_INET,
2021-08-22 16:15:36 394
原创 学生管理系统之面向对象版
main.py 文件 # 主程序入口# 一般开发中 文件夹会使用大驼峰命名法, 包和模块都是下划线分割法from StudentManagerSystem.student_manager import StudentManagerdef main(): # 需求:循环输入,直到用户选择7 则退出 s1 = StudentManager() s1.load_student_info() while True: # 提示用户输入信息 调用静态方法..
2021-08-21 08:42:34 300
原创 Python之继承与多态
1、在子类中调用父类方法 super().方法名() 类名.方法名(self) spuer(要从哪一个类的上一级类开始查找, self).方法名() 子类调用父类方法时,一般都是想对父类方法进行扩展 class Person(object): def __init__(self, name, age): self.name = name self.age = age def driver(self):
2021-08-21 08:35:00 344
原创 Python中面向对象的基础封装与继承
1、封装 将属性和方法写入类的内部,定义的类可以创建出多个具有相似功能的对象,在类中可以定义属性或方法的私有权限,这种方式叫做封装 # 封装:将属性和方法,写到类的内部,使实例获得较为全面的功能,并且可以将属性和方法设置私有权限,保证暴露接口的安全性# 封装的优点:# 1.可以找到一个对象能够完成所有的功能或者业务,迭代和维护较为方便# 2.可以设置私有属性或方法,提高代码安全性,只暴露我们想要暴露的接口# 3.可以降低模块或者类的使用难度,暴露少量接口即可完成全部功能# 私有属性
2021-08-20 21:18:11 107
原创 Python之面向对象
1、面向对象的思维方式 面向对象,是一个编程思想,并不是一项技术,重在理解 面向过程:一步一步的完成功能:自上而下,逐步细化 面向对象:找到或者构造一个可以完成功能的主体:找到实体,功能完备 2、类和对象 类就是一系列拥有相同或相似功能的对象的集合,或者说类就是一系列事物的统称 对象就是类的具体的表现形式 1、手机是对象还是类? 类2、苹果手机,是对象还是类? 类3、iPhonex 手机是对象还是类? 类4、我手里的苹果手机,是对象还是类?
2021-08-20 09:47:06 121
原创 Python中文件的操作
1、文件的基本操作 文件打开的格式: file = open(文件路径,读写模式) 文件路径:可以写相对路径,也可以写绝对路径 读写模式:r(读取) w(写入) a(追加) 文件打开后,必须关闭,否则持续消耗服务器性能。 # 文件读写,在使用的时候和我们正常使用文件一样# 1.打开文件# 2.操作文件# 3.关闭文件# 打开文件使用open函数即可# 格式: open(file_name(文件路径), mode(读
2021-08-16 10:36:49 308
原创 Python中的函数续······
1、函数定义和调用时各类参数的排布顺序 形参: 位置参数》》位置不定长参数》》缺省参数》》关键字不定长参数 实参:顺序赋值》》关键字参数赋值 在开发中除非有特殊需求,一般参数种类不超过三种,参数个数不超过5个,如果种类或数量太多,会造成我们开发中沟通成本加大 # 在定义函数时:位置参数,缺省参数,位置不定长参数,关键字不定长参数 到底在定义时怎么排列呢?# 调用函数时:顺序赋值, 关键字赋值 调用时的传参顺序是什么样的呢?# 定义函数时:形参# 位置参数和缺省
2021-08-16 09:00:02 159
原创 Python中的函数
1、函数的介绍 函数的定义: def 函数名(参数): 函数体 return 返回值 函数的调用:函数名(参数) # 函数: 将特定的功能所对应的代码片段进行打包,封存在一个函数内,如果我们想要重复使用该功能,就直接调用函数即可# 函数的作用: 提高代码复用率,提高开发效率,易于维护'''函数定义的格式:def 函数名(参数1, 参数2,参数3....): 函数体 return 返回值函数调用的格式:函数名(参数1,参数2,参
2021-08-11 21:18:35 289
原创 Python数据序列的公共方法与函数、以及推导式
1、公共方法1.1 ‘+’ 加法运算适用于所有的基础数据类型(int float bool) 加法运算所有两侧要是同种数据类型 加法运算再容器类型中是拼接的意思,不是相加计算值 # +法运算,都可以用于哪些数据类型之间# int float bool 肯定可以用于加法运算,不再赘述print(1 + 12.3) # 13.3# str 可以相加么? 可以str1 = 'hello'str2 = ' python'# 字符串相加,可以快速将字符串进行..
2021-08-11 21:04:36 301
原创 Python中的数据序列—tuple、dict、set
1、元组1.1元组的定义 单元素元组: 变量 = (数据,) 多元素元组:变量 = (数据1, 数据2, 数据3....) # 元组:可以储存多个数据,但是元组内的数据不能被修改(元定义后只能被查询)# 元组的定义:变量 = (数据1, 数据2, 数据3......)tuple1 = (1, 2, 3, 4)# 打印后可以展示元组中的全部信息print(tuple1) # (1, 2, 3, 4)# 查询数据类型print(type(tuple1)) # <c
2021-08-10 13:09:38 379
原创 Python中的数据序列—list(列表)大全
1、列表1.1 列表的查询 index:从左至右查询元素在列表中所处的位置,如果查询到该元素返回其第一次出现所在位置的正向下标,如果不存在则报错 count:查询指定元素在列表中出现的次数 in:查询指定元素是否在列表中 not in:查询指定元素是否不在列表中 # 索引查询name_list = ['Bob', 'Jack', 'Rose']# print(name_list[0]) # Bob# print(name_list[1]) # Jac
2021-08-10 12:51:53 1016
原创 循环中的else和字符串
for...else... while...esle... 如果循环正常结束,则执行else中的代码,如果循环异常结束,不执行else中的代码 break 可以打破循环造成循环异常结束 continue不会造成循环异常结束 while中的else# 语法结构'''while 循环条件: 条件满足,则循环执行此代码else: 循环条件不成立执行此代码,执行后循环结构终止'''# 需求: 下载一个视频 从0% - 10..
2021-08-02 10:19:13 688
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人