- 博客(69)
- 收藏
- 关注
原创 hive解析json字段
eg: [{“code”:“0001”,“dept”:“市场部”},{“code”:“0002”,“dept”:“运营部”}]eg:待解析的字符串: {“code”:“0001”,“dept”:“市场部”},分别获取code 和dept。格式:get_json_object(待解析的字段,‘.$要取的属性’)regexp_extract(字符串, ‘^\[(.+)\]$’)2.2、将{}外的逗号分隔符置换成json数据中不存在的字符。replace(字符串,‘},’,‘}|’)2.1、先去掉中括号。
2023-02-27 16:23:43
681
原创 load csv文件数据到hive,中文乱码解决办法
load data local inpath ‘/home/bgyetl/etl/tmp/new_item_code.csv’ into table test.item_info;数据乱码:重新查询数据,中文不乱码了
2022-07-14 11:31:30
1097
原创 DataX推送数据至mysql报错:“message“:“类型转换错误, 无法将[\\N] 转换为[LONG]“
“message”:“类型转换错误, 无法将[\N] 转换为[LONG]”在通过dataX 从数仓向mysql推数的过程中发现 不管字段是字符型还是数据型,字段为null推送到mysql都会报错,如果是字符型还能改成 字符型空值(‘’)推送过去,但是数字型字段就不能这样了。碰上上述问题:...
2022-04-21 20:04:18
4455
原创 hive 中的三种空值
hive中的三种空值:null 空值->判定方式 columns is null select * from Table1 where name is null; '' 空字符串,表示字段不为空值,但为空字符串(等于length(column)=0) select * from table1 where name = ''; 'NULL' ->NULL字符,由于建表语句或其他因素导致存储了字符为NULL的空值 select * from...
2021-03-26 10:55:12
775
原创 Hive 和Impala之间的关系及常见问题
一、Impala和Hive的关系Impala是基于Hive的大数据实时分析查询引擎,直接使用Hive的元数据库Metadata,意味着impala元数据都存储在Hive的metastore中。并且impala兼容Hive的sql解析,实现了Hive的SQL语义的子集,功能还在不断的完善中。二、常见查询问题1、在Hive上建表,Impala上查询不到该表。报错:AnalysisException: Could not resolve table reference: 'table_nam..
2020-12-24 17:29:59
4412
1
原创 hive常问面试题
一、HQL如何转化成mapreduce?通过Sql Parse(sql解析器)将sql解析成抽象语法树通过语义分析器, 遍历抽象语法树,抽象出查询块通过逻辑计划编译器,遍历查询块,将其翻译为操作树进行逻辑层优化,对操作树进行优化,合并操作符,合并不需要的ReduceSinkOperator,减少shuffle数据量(达到减少MapReduce Job,减少shuffle数据量的目的)(逻辑计划转换成物理计划)-将操作树翻译成Mapreduce优化mapreduce,生成最终的执行计划二、H
2020-11-25 17:46:32
291
原创 linux 常用命令详解_持续整理
文件操作1、mv1、修改文件名称或目录名称2、将文件或目录移入其它位置1.1、语法:mv [options] source destmv [options] source... directory1.2、参数说明选项参数说明-b当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。-i如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。-f如果指定移动的源目录或文件与目标
2020-11-08 19:31:38
266
原创 python基础学习01_认识变量
一、变量的作用:存储数据时,作为当前数据所在内存地址的名字。程序中,数据都是临时存储在内存中,为了更快速的查找或使⽤这个数据,通常我们把这个数据在内存中存储之后定义⼀个名称,这个名称就是变量。二、定义变量变量名 = 值定义变量名,要满足标识符命名规则。1、标识符标识符命名规则是Python中定义各种名字的时候的统一规范,具体如下:由数字、字母、下划线组成不能数字开头不能使用内置关键字严格区分大小写2、命名习惯见名知义。大驼峰:即每个单词首字母都大写,例如: MyNam
2020-10-25 12:49:20
136
原创 matplotlib_04_饼图
1、数据准备import matplotlib.pyplot as pltimport pandas as pdimport os plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False# 切换路径os.chdir('E:\学习文档\data')# 从excel读取数据data = pd.read_excel('cust.xlsx',encoding = 'utf-8',u
2020-10-17 15:14:27
116
原创 Pandas_08数据离散化
1、什么是数据的离散化连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数值代表落在每个子区间中的属性值。2、为什么要离散化为了简化数据结构,数据离散化技术可以用来减少给定连续属性值的个数。离散化方法经常作为数据挖掘的工具扔掉一些信息,可以让模型更健壮,泛化能力更强3、离散化之pandas.cut()等宽分箱或自定义分组等宽分箱import pandas as pdimport numpy as np'''pd.cut(x, bins,
2020-10-13 23:00:29
305
原创 Pandas_07透视表和交叉表
一、透视表透视表(pivottable)是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具。它根据一个或多个键对数据进行聚合,并根据行和列上得分组建将数据分配到各个矩形区域中。在Python和pandas中,可以通过groupby功能以及(能够利用层次化索引的)重塑运算制作透视表。DataFrame有一个pivot_table方法,此外还有一个顶级的pandas.pivot_table函数。除了能为groupby提供便利之外,pivot_table还可以添加分项小计(也叫margins)。
2020-10-12 22:04:13
772
原创 Pandas_06数据聚合与分组运算
一、分组 (groupby)(一) groupby 对象1、分组运算过程:split->apply->combine拆分:根据提供的一个或多个键拆分成多组应用:每个分组运行的计算规则合并:把每个分组的计算结果合并起来2、分组操作:groupby()进行分组,GroupBy对象没有进行实际运算,只是包含分组的中间数据数据如下:按列分组 obj.groupby(‘label’)此时label为分组后数据的索引grouped =book_data.groupby('
2020-09-29 23:10:02
387
原创 Pandas_05数据清洗(重复值、缺失值以及异常值的处理)
一、重复值处理一般保留第一条重复数据,对其他重复数据进行移除。判断重复值 df.duplicated'''df.duplicated(subset=None, keep='first')参数说明:subset:列标签,默认使用所有列,若只考虑用某些列来识别重复项,可指定列keep,默认first,保留重复值的第一项, 也可以指定last,保留最后一项重复值数据返回的是一个视图'''数据:判断重复数据tran_data.duplicated()T
2020-09-26 13:02:30
2497
原创 Pandas_04合并数据集
一、合并数据集1、pandas.merge :根据一个或多个键将不同DataFrame中的行连接起来。2、pandas.concat: 可以沿着一条轴将多个对象堆叠到一起3、实例方法conbine_first: 将重复数据编结到一起,用一个对象中的值填充另外一个对象的缺失值。二、pandas.merge:数据库风格的DataFrame合并数据准备:import pandas as pdimport osos.chdir('E:\学习文档\data')os.getcwd()stud
2020-09-25 00:33:18
757
原创 Pandas_03层次化索引
一、层次化索引:在一个轴上拥有多个索引(两个及以上),它使得我们能以低纬度形式处理高纬度数据。层次化索引在数据重塑和基于分组的操作(透视表的生成)中扮演重要角色。简单的说,层次化索引就是轴上有多个级别的索引。二、带层次化索引的Series数组对象1、创建带层次化索引的Series数组对象import pandas as pdimport numpy as npdata = pd.Series(np.random.randint(1,10,10),index=[['a','a','a','b'
2020-09-24 20:11:17
618
原创 Pandas_02索引及增删改查
一、索引1、索引的基本设置1.1、设置行索引DataFrame.set_index() 设置索引准备数据:import pandas as pdstock_data = pd.read_csv('File/csv_files/stock_day.csv')# pd.head()默认查看前五行数据stock_data.head()设置索引'''DataFrame.set_index(keys, drop=True, append=False, inplace=False, v
2020-09-22 01:29:03
360
原创 Pandas_01基本数据结构(Series、DataFrame)
一、基本数据结构1、Series:带标签(行索引)的一维同构数组长度不可改变2、DataFrame:既有行索引、又有列索引的二维异构数组大小可变二、Series的创建及其属性1、创建Series数组import pandas as pdimport numpy as np'''pd.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)参数说明: data:数组
2020-09-21 20:02:09
764
1
原创 Numpy_07_随机数详解
一、随机数通过random模块生成随机数生成的都是伪随机数(依赖于我们给的初始种子)1、生成随机整数np.random.randint()创建指定区间[low, high)的随机整型数组 '''np.random.randint(low, high=None, size=None, dtype='l')参数说明:low:int类型,数据范围下限high:int类型,数据范围上限size:数组形状,int或元组类型函数作用:返回指定区间[low, high)的整型数组'''
2020-09-21 02:07:37
274
原创 Numpy_06_字符串处理(常用字符串函数详解)
Numpy提供了char模块,运用向量化运算方式处理字符串数据。char模块提供常用的字符串操作函数,如连接、切片、删除、替换等
2020-09-20 23:39:21
2392
原创 Numpy_05_文件的读取与存储
一、文件的读取1、np.genfromtxt():可读取csv、txt类型文件'''np.genfromtxt(frame,skip_header,dtype,usecols,encoding=,delimiter=None)常用参数说明:frame:带路径或不带路径的文件skip_header:指定从第几行开始读取文件(通常skip_header = 1,跳过第一行的列名,从第二行开始读取)dtype:指定读取出来存储的数据类型usecols:(list)指定需要读取的列(指定列的索引
2020-09-20 19:43:03
631
原创 Numpy_04_数组的运算与排序
一、NumPy运算特点:1、向量化运算,运算速度快。2、利用广播机制,对不同形状的数组进行算数运算。3、数组通用函数能对数组中所有元素进行操作。二、数组运算1、算数运算1.1、算数运算符import numpy as np# 准备数据a = np.array([2,4,1])a# array([2, 4, 1])# 数组与数进行加法运算a + 1# array([3, 5, 2])# 数组与数进行除法运算a / 2array([1. , 2. , 0.5])'''
2020-09-19 23:36:10
437
原创 Numpy_04_ndarray数据形状的变换(一维到多维、多维变一维、数据合并等)
一、修改数组的形状( 一)、单个数组形状的修改1、数组形状的普通修改1.1、ndarry.reshape()'''reshape(shape)shape:填入生成的数组形状(元组)特点:1、有返回值,返回一个视图2、不直接作用于原数组(不改变原数组的形状)'''import numpy as npn1 = np.array([[2,4,3,2],[8,4,2,9],[8,3,4,9]])n1# array([[2, 4, 3, 2],# [8, 4, 2,
2020-09-19 17:58:12
10780
原创 Numpy_01_NumPy简介(NumPy数组与Python原生数组之间的区别)
一、定义:1、NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。2、NumPy的核心是ndarray对象(n–任意个,d–dimension维度,array–数组),ndarray对象有属性和方法。封装了python原生的同数据类型的 n 维数组。(可以理解为具有相同数据类型的item的集合)
2020-09-18 21:36:50
751
原创 NumPy_03_视图与拷贝
一、拷贝与视图(一)拷贝1、浅拷贝:对另外一个变量的内存地址的拷贝,这两个变量指向同一个内存地址的变量值。(如果其中一个变量的值改变,另外一个也会改变。)(1)np.asarray(a, dtype=None, order=None)(2)数组b = 数组a2、深拷贝:一个变量对另外一个变量的值拷贝特点:(1)两个变量指向的内存地址不同(2)拷贝完后,变量之间值的改变互不影响ndarray.copy()(二)视图ndarray.view()创建一个查看相同数据的新数组对象,
2020-09-15 14:09:49
175
原创 Numpy_02_ndarry对象
一、定义:1、NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。2、NumPy的核心是ndarray对象(n–任意个,d–dimension维度,array–数组),ndarray对象有属性和方法。封装了python原生的同数据类型的 n 维数组。(可以理解为具有相同数据类型的item的集合)
2020-09-14 21:59:08
673
原创 matplotlib_03_柱状图(条形图)
纵向柱状图# 对比每部电影的票房收入from matplotlib import pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False# 1、准备数据movie_names = ['雷神3:\n诸神黄昏','正义联盟','东方快车谋杀案','寻梦环游记','全球风暴', '降魔传','追捕','七十七天','密战','狂兽','其它']print(len
2020-09-11 15:54:28
373
原创 matplotlib_02_散点图
#假设通过爬虫你获取到了某市2016年3,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温和随时间(天)变化的某种规律?from matplotlib import pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsey_a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,1
2020-09-10 19:46:46
124
原创 matplotlib_01_折线图
# 展现上海一周的天气,比如从星期一到星期日的天气温度如下from matplotlib import pyplot as plt# 设置图形字体为SimHei,显示中文(否则图形显示的时候中文会乱码)plt.rcParams['font.sans-serif']=['SimHei']# 设置正常显示字符plt.rcParams['axes.unicode_minus']=False# figsize(画布长宽),dpi(图像倾斜度)plt.figure(figsize = (15,10),
2020-09-10 10:52:34
133
原创 matplotlib绘制图形如何使中文不乱码,正常显示
# 设置图形字体为SimHei,显示中文(否则图形显示的时候中文会乱码)plt.rcParams['font.sans-serif']=['SimHei']# 设置正常显示字符plt.rcParams['axes.unicode_minus']=False此时图像区域的中文正常显示
2020-09-10 10:43:35
144
原创 windows下安装miniconda详细教程
1、可在清华大学开源软件镜像站下载安装包https://mirrors.tuna.tsinghua.edu.cn/2、检索anaconda,并点击3、选择miniconda4、下载适合的版本5、安装一路默认点击next6、添加环境变量将以下三个路径添加到环境变量path中7、验证安装是否成功cmd到黑窗口...
2020-09-09 20:19:07
22342
11
原创 python基础学习21_异常(异常传递、自定义异常)
# -*- encoding: utf-8 -*-"""# **异常**1、含义:当检测到一个错误,解释器无法执行下去,并出现一些错误提示,即为异常。2、语法:try: 可能发生错误的代码except [Exception as 变量]: 出现异常执行的代码(打印变量)else: 未出现异常时执行的代码finally: 有没有异常都要执行的代码3、异常传递,即异常嵌套4、自定义异常 4.1、继承父类Exception 4.2、抛出异常 rai
2020-09-08 15:24:47
92
原创 python基础学习20_面向对象之【多态】(包含多态、类属性与实例属性、类方法与实例方法)
# -*- encoding: utf-8 -*-"""面向对象之多态1、多态:一类事物有多种形态(最好依赖于继承,但不必须) 1.1、定义:多态是一种使用对象的方式,子类重写父类中的方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果。 1.2、优点:调用灵活,更容易编写出通用的代码2、类属性和实例属性 2.1、类属性:类对象拥有的属性,被该类所有实例对象所共有 2.1.1、使用场景:记录某项指标,如果数据始终保持一致使用类属性 2.1.
2020-09-08 13:24:56
154
原创 python基础学习16_面向对象三大特性
1、封装1.1、将属性和方法写到类中的操作即为封装1.2、封装可以为属性和方法添加私有权限2、继承2.1、子类默认继承父类的所有方法和属性2.2、子类可以重写父类的方法和属性3、多态传入不同的对象,产生不同的结果...
2020-09-07 20:10:10
73
原创 python基础学习19_面向对象之【继承】(包含继承、子类重写父类、私有属性与私有变量)
“”"面向对象之【继承】1、继承的概念:1.1、多个事物(类)之间的所属关系,子类默认继承父类的所有方法和属性。1.2、所有类默认继承object类,object类称为顶级类或者基类,其他子类叫做派生类。2、继承的方式:2.1、单继承:子类只继承一个父类2.1.1、子类在继承的时候,在定义类时,小括号()中为父类的名字。语法:class 子类类名(父类类名):代码块2.1.2、父类的属性、方法,会被继承给子类.2.2、多继承:子类继承多个父类子类同时继承多个父类时,如果父类中有同名方
2020-09-07 19:44:30
412
原创 python基础学习17_面向对象之【经典类与新式类】
1、经典类:不由任意内置类型派生出的Python 2.X版本解释器下,默认类是按照经典类去解释处理的。class A: 代码块2、新式类::创建的时候继承内置object对象Python 3.X版本解释器下,默认类是按照新式类去解释处理的。括号里面可以写我们自己书写的父类,不写默认是object(所有类的父类)class A(object): 代码块目前工作中使用的版本一般最低是3.5,所以重点关注新式类即可,可以了解一下经典类。...
2020-09-04 19:32:49
134
原创 python基础学习18_面向对象之类与对象(属性、实例化方法、魔法方法及综合应用)
# -*- encoding: utf-8 -*-"""# 面向对象1、类与对象基本含义: 1.1、类:具有相同属性和行为的事物的统称(如:水果) 1.1.1、类名要遵循标识符命名规则,也要遵循大驼峰命名习惯。 1.1.2、语法 class 类名(): 代码 1.1.3、类里面有属性和实例化方法 1.2、对象:'类'创建出来的真实存在的事物(如:苹果) 1.1
2020-09-04 18:49:12
255
原创 python基础学习15_文件操作(文件读写、备份及文件夹操作等)
# -*- encoding: utf-8 -*-"""# 文件操作1、作用:把一些内容(数据)存储起来,让程序下一次执行的时候直接使用,而不必重新制作一份2、文件的基本操作 2.1、打开文件:open(name,mode) name: 要打开的文件名(可包含路径) mode: 访问的模式,r 读、 w 写,a 追加 2.2、读写文件 2.2.1、写:文件对象.write('data')
2020-09-03 16:59:08
294
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人