- 博客(43)
- 收藏
- 关注
原创 hive字段类型修改问题总结
因将线上表的某个字段的类型进行了更改,进而引发了下面两个问题:字段的声明类型和parquet存储时的类型不一致table schema和partition schema不一致致使数据表直接无法使用。具体出错的问题从执行日志中可以清楚的看到。问题1问题:将字段类型改成int类型,但是报错信息提示parquet文件对应字段类型是int64,设置的字段类型与实际存储的类型不一致解决:将字段类型改为bigint使与parquet存储时一致,数据表可以正常使用。问题2问题:由于以前的分区已经运行
2021-05-20 20:32:02 2567
原创 二叉树的遍历python3版本
文章目录先序遍历迭代递归中序遍历迭代递归后序遍历迭代递归层次遍历迭代广度优先搜索BFS应用法1法2深度优先搜索DFS应用法1法2法3输出遍历序列实际上就是将遍历中的print语句改成储存在结果列表中即可,这里作为练习都写了一遍。先序遍历迭代栈 入栈出栈顺序# 先序遍历打印def preorderTraversal(root): if not root: return stack = [root] while stack: cur = stack.pop() print(cur.
2021-05-04 17:26:49 903 4
翻译 hive字符串相关操作整理
内置操作||可以实现字符串的拼接,和concat作用一样内置函数下面汇总一些比较常用的函数返回类型签名描述stringconcat(string|binary A, string|binary B…)将传入的字符串或者字节依次拼接,接受任意个数的参数stringconcat_ws(string SEP, string A, string B…)使用指定分隔符SEP将字符串拼接stringconcat_ws(string SEP, array< str
2021-04-01 16:53:06 339
原创 hive集合数据类型汇总
文章目录基本概念arraymapstruct使用创建常用函数(主要汇总了和array相关的)hive支持的集合类型有三种:structmaparray基本概念array含义:array数组是一组具有相同类型和名称的变量集合访问:内部每个元素可以通过下标来访问,下标从0开始。如值为['john',' boysen']的数组,第二个元素通过数组名[1]访问注意:如果元素为字符类型时,mr和presto的显示不一样。例如['john','boysen'],mr的结果中显示为["john","
2021-04-01 11:19:02 3537
原创 python中文注释
在python脚本中添加中文注释可能会报错。官网的说明如下:Defining the Encoding Python will default to ASCII as standard encoding if no other encoding hints are given. To define a source code encoding, a magic comment must be placed into the source files either as first or
2021-02-27 21:42:57 221
原创 关于datetime
strptime()完整调用形式是datetime.datetime.strptime(),因此有下面两种写法:#type1import datetimedatetime.datetime.strptime(arg...) #type2from datetime import datetimedatetime.strptime(arg...)注意timedelta是datetime中的即datetime.timedelta(arg...)import datetime 和from date
2021-02-24 16:07:45 106
原创 python导入自定义模块
只要将其作为.py文件和当前文件放在同一个目录下,使用import导入即可。使用方法和导入其他模块的使用方法相同。需要注意的是,如果被导入的模块中有可以运行的顶层代码,在导入后该部分代码会被运行,然后才运行当前脚本的代码# test.pyprint('test')def f(): pass# main.pyimport testprint('main')#结果:#test#main如果不想让test模块中的顶层代码在导入时自动运行,将其放在if __name__ == '__m
2021-02-24 09:12:48 112
原创 python赋值、深浅拷贝和重复
赋值传个引用(相当于多了个别名)重复深层重复使用的是引用L=[4,5,6]X=L*2//简单重复非引用Y=[L]*2 //列表的引用 //X=[4,5,6,4,5,6]//Y=[[4,5,6],[4,5,6]] L[1]=0 //X=[4,5,6,4,5,6] 没有改变//Y=[[4,0,5],[4,0,5]] 因为是列表的引用所以改变了copy浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。b = a[:]是浅copy深拷贝(deepcopy)
2021-02-23 17:46:47 106
翻译 collections.Counter 用法
https://docs.python.org/3/library/collections.html
2020-09-28 15:51:53 2185
原创 异或运算
异或运算三个性质:任何数和 0做异或运算,结果仍然是原来的数任何数和其自身做异或运算,结果是 0异或运算满足交换律和结合律位运算(包含异或运算)都是针对二进制数的运算,因此输入十进制整数,并不是直接在十进制意义下进行运算,而是对对应的二进制进行运算。...
2020-09-28 09:26:42 1112
原创 python函数定义和调用
一般而言,函数的定义必须应该放在调用之前函数调用另一个函数的时候,不一定遵循上面的要求python是不需要先编译的,所以这决定了你调用函数之前得知道有这个函数,所以执行代码前需要有要用到的函数的定义。下面的代码在执行的时候,程序看到了函数fun1(), fun2(),并把相关的信息记录下来知道有这么个函数,但是并没有去查看函数内部的东西。等到调用函数fun1()时,再查看函数内部的实现,发现使用了函数fun2(),因为已经知道了有fun2()这个函数,再去查看使用fun2()内部具体的实现。因此,.
2020-09-12 09:20:16 521
原创 python赋值拷贝
直接赋值:就是赋值引用,将两个标识符同时指向了同一个对象,创建了别名a = b#a和b指向同一个对象,是同一个对象的不同名称浅拷贝:只拷贝父对象,不拷贝子对象a = [1,2]b = a.copy()python中列表是一个参考结构,也就是说,列表的内部元素储存的是元素的引用,而不是元素本身。因此对于上面的代码,只拷贝父对象指的是完成拷贝之后a和b是两个独立的对象,不拷贝子对象指的是并没有拷贝列表内部元素的引用,a,b内部的元素(是引用)指向的还是同一个内容,因此对a或b的元素进行修.
2020-09-10 19:16:20 225
原创 图的应用——最小生成树(MST)
文章目录概念定义性质算法Prim想法算法代码Kruskal想法算法代码概念定义带权无向连通图权值之和最小的生成树就是最小生成树性质不一定唯一唯一的情况:所有边的权重都不相同原图本身就是生成树(边数等于节点数减一时)最小生成树的权重之和唯一,且是最小的最小生成的边数是顶点数减1算法基本想法:贪心法——每一步做出最好的选择基本思想:GENRIC_MST(G){ T=NULL; while T 未形成一颗生成树: do 找到一条最小代
2020-09-04 09:50:29 1512
原创 图——基本概念与遍历
文章目录逻辑结构——基本概念图的存储邻接矩阵邻接表十字链表邻接多重表图的遍历广度优先搜索深度优先搜索图的应用最小生成树逻辑结构——基本概念线性表、树可以为空,但是图不能为空简单图:无重复边,不存在节点到自身的边;反之就是多重图无向完全图:任意两个顶点之间都存在边有向完全图:任意两个顶点之间都存在方向相反的弧生成子图:子图含有原图的所有顶点无向图——连通——顶点之间存在路径——连通图——最少n-1条边有向图——强连通——两个顶点之间同时存在双向的路径——强连通图——最少n条边连通分量(极
2020-09-04 09:45:06 227
原创 树
文章目录基本概念性质二叉树满二叉树完全二叉树二叉排序树(BST )应用平衡二叉树应用线索二叉树:shit:哈夫曼树应用树的存储结构二叉树重要性质二叉树的存储结构遍历树、森林与二叉树的转化转换遍历森林的遍历树的应用并查集基本概念层次——深度;从上往下(一般从1开始)高度:从下往上有序树:子树从左到右有顺序,否则就是无序树性质节点数=总度数+1树的度:各节点度的最大值度为m的树第i层最多有mi−1m^{i-1}mi−1个节点高度为h的m叉树最多有mh−1m−1\frac{m^{h}-1
2020-09-02 18:13:06 101
原创 排序
排序重点在内部排序基本概念稳定性:关键字相同的元素,在排序前后的相对位置不变稳定性不是衡量算法优劣的标准,只是一个特性,反应算法性能的是算法的时空复杂度内部排序:指在排序期间元素全部存放在内存中的排序外部排序:指在排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断地在内、外存之间进行移动内部排序插入排序每次将一个待排序的序列插入已经排好序的序列中直接插入排序初始L[1]是一个已经排好序的子序列 对于元素L(i)(L(2)-L(n))插入到前面已经排好
2020-09-01 15:29:44 241
原创 查找
内容来源:王道考研——数据结构文章目录顺序查找折半查找分块查找B树基本内容查找插入删除对终端节点的删除操作对非终端节点的删除操作B+树散列表散列函数构造冲突处理开放定址法拉链法散列表查找填装因子填装因子顺序查找又叫线性查找,主要用于线性表中查找typedef struct { ElemType *elem; int TableLen ; } SSTable ;int search_seq (sstable st, ElemType key) { //设置哨兵,不用对于
2020-08-30 14:05:21 192
原创 字符串匹配
文章目录朴素模式匹配KMP算法基本思想next数组确定代码实现KMP算法改进在主串中找到和模式串相同的子串,并返回其所在位置。下面考虑的主串和模式串的的初始位置都是从数组下标为1的位置。朴素模式匹配将主串中和模式串长度相同的子串和模式串一次比较,只要有一个字符不匹配,就舍弃当前子串比较下一个子串主串长度为n,模式串长度为m,则最坏时间复杂度为O(nm)O(nm)O(nm)(要匹配(n-m+1)m次)朴素模式四配算法的缺点: 当某些子串与模式串能部分四配时,主串的扫描指针 i 经 常回溯,导致时间开
2020-08-28 17:00:28 131
原创 栈和队列基本应用
文章目录栈括号匹配问题表达式计算基本概念表达式转化表达式求值(算法实现)栈递归应用队列的应用树的层次遍历图的广度优先遍历在操作系统中的应用栈括号匹配问题基本想法:最后出现的左括号最先匹配不匹配的情况:左右括号不匹配左括号单身(最后栈不为空)右括号单身(栈空但是还有右括号)表达式计算基本概念按照操作符与操作数的相对位置分成三种计算方式:后缀表达式(逆波兰表达式):操作符在两个操作数的后面前缀表达式(波兰表达式):操作符在两个操作数的前面中缀表达式:操作符在两个操作数的中
2020-08-28 15:20:07 235
原创 线性表备忘
常见时间复杂度O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)O(1)<O\left(\log _{2} n\right)<O(n)<O\left(n \log _{2} n\right)<O\left(n^{2}\right)<O\left(n^{3}\right)<O\left(2^{n}\right)<O(n !)<O\left(n^
2020-08-28 14:23:28 91
原创 循环队列队空队满判断
为了方便对于循环队列进行队空队满判断,牺牲一个存储单元。记rear、head分别为队尾队头指针则:队满:(rear+1)%maxsize=head队空:rear=head插入元素后,rear=(rear+1)%maxsize删除元素后,head=(head+1)%maxsize...
2020-08-27 14:35:14 2603
原创 字符串的比较和运算
字符串大小比较字符串大小比较的时候,会从左向右将两个字符串第一个不相等的两个字符的ascii码的比较结果作为最终结果。也就是说,对于两个字符串,从左到右依次取对应位置元素,比较字符元素的ASSIC编码,如果当前位置可以分出大小,就直接将当前的比较结果作为结果输出,不再比较后面的字符元素;否则继续依次比较后面单个字符元素的大小。字符串运算在mysql当中,字符串类型间进行加减乘除运算的时候,会截取字符串以数字开头的那一部分数字进行运算,如果字符串前面没有数字,那么对应字符串的截取的数值为0,那么进行加
2020-08-17 21:46:20 976
原创 where和having
SQL中常用的聚合函数有min/max/count/avg/sum,通常和group by连用。在涉及到条件筛选时,where子句中不能有聚合函数,要想使用条件应该使用having。这与语句的执行顺序有关。WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前;而 HAVING子句在聚合后对组记录进行筛选。因此执行where时不存在对应的聚合函数的值,因此where子句中不能有聚合函数。...
2020-08-17 21:29:01 137
原创 distinct 使用
MySQL distinct 使用1.基本用法distinct用于筛选唯一值,可以作用于单个列或者多个列。作用于单个列时有以下几个注意点:distinct必须放在所有指定字段名之前,不允许select <name1>, distinct <name2> from ...distinct作用于多个列,结果按照指定的多个列的值得组合进行筛选2.和count一起用可以使用select count(distinct name) from ....因为count是
2020-08-16 14:58:00 17335 2
原创 3-线性回归
线性回归内容来源:B站 up:shuhuai008主要内容最小二乘(矩阵表达,几何意义)概率角度:最小二乘法等价于噪声为高斯分布的最大似然估计正则化:L1L_{1}L1——Lasso;L2L_{2}L2——Ridge岭回归最小二乘(矩阵表达,几何意义)最小二乘估计结果:参数W=(X⊤X)−1X⊤YW=(X^{\top}X)^{-1}X^{\top}YW=(X⊤X)−1X⊤Y.几何意义:f(X)=W⊤Xf(X)=W^{\top}Xf(X)=W⊤X——将每个误差平均分散在每个样本上
2020-08-04 16:24:21 261
原创 2-频率学派 vs 贝叶斯
频率学派 vs 贝叶斯内容来源: B站up:shuhuai008给定数据X和参数θ\thetaθ:频率学派认为参数θ\thetaθ为未知的,x为随机变量,使用最大似然估计(MLE)获得估计值。贝叶斯学派认为参数θ\thetaθ也是随机变量,服从先验分布p(θ)p(\theta)p(θ)。MAP使后验概率最大的点为估计:θMAP=argmaxθP(θ∣X)=argmaxθP(X∣θ)⋅P(θ)\theta_{M A P}=\arg \max _{\theta} P(\theta
2020-08-04 15:12:33 160
原创 1-数学基础
高斯分布相关内容来源:B站 up:shuhuai008——机器学习白板推导参数μ,σ2\mu, \sigma^{2}μ,σ2最大似然估计,估计量的特性(均值和方差等)Δ=(x−u)TΣ−1(x−u)=(x−μ)⊤∑i=1pui1λiuiT(x−μ)=∑i=1p(x−μ)⊤ui1λi⋅ui⊤(x−μ)=∑i=1pyi2λi\begin{array}{l}\Delta=(x-u)^{T}\Sigma^{-1}(x-u)\\=(x-\mu)^{\top} \sum_{i=1}^{p} u_{i} \
2020-08-04 15:02:37 143
原创 简单快捷键和DOS命令
简单快捷键和DOS命令快捷键win+e 进入电脑打开cmd方式:win+r+cmd打开电脑,在路径栏输入cmd回车开始按钮里命令提示符shift+delete彻底删除文件(不会到回收站里)dos命令cd切换目录(跨盘切换使用cd /d+路径)cd ..退回上级目录dir查看当前目录下文件cls清屏exit退出ipconfig查看电脑IPping命令:ping www.baidu.commd 创建文件夹rd删除文件夹cd>创建文件del删除文件..
2020-07-12 20:21:09 136
翻译 数据预处理
数据预处理近期做的内容遇到了许多和数据预处理相关的内容,结果对模型效果具有较大影响,因此将官方给出的预处理的解决方法大体了解了一下,并大体翻译了一下,方便以后查找。翻译自sklearn官方文档,原文链接: link.目录数据预处理类方法1.标准化1.1 将特征缩放成一个范围1.2 放缩稀疏数据1.3 放缩有异常值的数据1.4 中心化核矩阵2 非线性变换2.1映射成\[0, 1\]均匀分布2....
2020-05-08 16:11:14 235
原创 Python备忘3
format用法,以及格式化f-string 格式话字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去可以使用del删除列表中的元素list.extend(seq) seq – 元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾。append() 方法向列表的尾部添加一个新的元...
2020-02-17 21:32:10 174
原创 Python3备忘2
Python是解释性语言,没有编译过程使用反斜杠(\)可以实现一条语句多行输入,在 [], {}, 或 () 中的多行语句,不需要使用反斜杠()Python中有负数complex(用j或J)a + bj,或者complex(a,b)使用三引号(’’'或""")可以指定一个多行字符串。反斜杠可以用来转义,使用r可以让反斜杠不发生转义字符串、列表。元组可以用 + 运算符连接在一起,用 * ...
2020-02-16 22:23:38 89
原创 Python3备忘1
1.range函数range函数返回类型为range,如果将结果用于循环,需要使用list将结果列表化2. 字符串的join方法返回通过指定字符连接序列中元素后生成的新字符串。s1 = "-"s2 = ""seq = ("r", "u", "n", "o", "o", "b") # 字符串序列print (s1.join( seq ))print (s2.join( seq ))...
2020-02-12 21:18:24 75
原创 R学习笔记(流程控制与循环)
文章目录if和elseswitchrepeatwhileforif和else1.== if、else、else if==含义与在其他编程语言相同,用法示例:x<-5if(x<1){message("small")}else if(x<5){message("ok!")}else{message("big!")}唯一需要注意的是,else if和els...
2019-05-25 22:36:54 217
原创 R学习笔记(字符串和因子)
文章目录笔记内容基于《学习R》一书字符串创建和打印字符串格式化数字特殊字符大小写截取字符串分割字符串因子创建更改因子水平去掉因子值有序因子将连续变量转化为类别将类别转化为连续变量生成因子水平合并因子笔记内容基于《学习R》一书字符串创建和打印字符串字符向量可以使用c函数创建,并用单引号或双引号括起来。paste将不同的字符串组合起来,默认使用空格分开,可通过参数sep更改分隔符,...
2019-05-25 00:03:32 1881
原创 R学习笔记(函数简介)
R中函数具有的几个特点:函数体中没有显示的return语句,一般函数自动返回最后一次计算的值。函数传参的使用方法与其他编程语言的使用方法一样,同时支持形参为函数formals和args取得函数参数并返回一个列表,formalArgs将返回参数名称的字符向量,body和deparse返回函数体==do.call(<函数名>,list(参数))==调用某个函数,其中<函数名...
2019-05-22 22:53:06 201
原创 R学习笔记(列表和数据框)
文章目录列表创建维度和运算索引转化组合列表数据框创建索引基本数据框操作列表列表是一个向量,其每个元素的类型可以不同,可以是向量、矩阵或函数等。创建list函数用于创建列表,各元素之间使用逗号分隔。可以在创建的时候对各元素命名,也可以在创建后使用names函数进行命名维度和运算列表没有维度,故不能对其应用dim函数。列表的长度(length函数)即为顶层元素个数。因列表允许...
2019-05-22 19:45:00 942
原创 R学习笔记(第四章——矩阵和数组)
文章目录创建行列和维度维度名索引合并矩阵数组算数创建创建数组使用array,传入两个向量(值和维度)作为参数,也可以对每个维度命名。a_array<-array( 1:24, dim=c(4,3,2), dimnames=list( c("one","two","three","four"), c("ein","zwei","drei"), c("un...
2019-05-21 21:41:26 241
原创 R学习笔记(第四章——向量)
文章目录向量创建长度命名索引向量向量循环和重复向量创建使用冒号运算符创建使用c函数拼接数值和向量,例:使用每个类型的包装函数创建,例:seq函数可以直接调用seq函数,也可以调用下面三个专门的序列函数,它们运行更快更易用seq.int(a,b,n)#创建从a到b的步长为n的序列,n默认为1seq_len(n)#创建从1到n的序列seq_along(list_)...
2019-05-20 23:31:28 524
原创 R学习笔记(第三章)
文章目录检查变量和工作区类简介查看和更改类检查变量检查变量和工作区类简介R中所有变量都有一个类,使用class函数查看变量类别。数字浮点值(numeric)、整数(integer)、复数(complex) 默认类型为numeric,如数字1为numeric,1L则为integer。类别数据——因子factor因子是具有标签的整数,标签的取值范围称为因子水平。比如设定性别...
2019-05-19 22:02:08 218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人