spark海量数据分析
文章平均质量分 65
海量数据分析,主要运用spark实现。
一只勤奋爱思考的猪
爱记录、爱分享、爱学习、希望多多留下自己思考过疯狂过的痕迹!
展开
-
大数据开发面试的总结-第五篇
目录1、transformation和action的区别1.1、transaction常见算子:1.2、action常见算子:1.3、transformation和action原理剖析图2、Hive中如何查看执行日志3、参考1、transformation和action的区别操作共同点不同点transformation支持RDD操作,主要是实现从一个RDD到另一个RDD,transaction操作是不会触发spark程序的执行的,,只是记录了对RDD所作的操作,但是不会自发的执原创 2020-07-08 17:28:36 · 440 阅读 · 0 评论 -
hive sql的优化
目录1. 将大表放后头2. 使用相同的连接键3. 尽量尽早地过滤数据4. 尽量原子化操作5. 并行执行6. 调整mapper和reducer的个数6.1 Map阶段优化6.2 Reduce阶段优化7.严格模式8.数据倾斜9 参考1. 将大表放后头Hive假定查询中最后的一个表是大表。它会将其它表缓存起来,然后扫描最后那个表。因此通常需要将小表放前面,或者标记哪张表是大表:/*streamtable(table_name) */2. 使用相同的连接键当对3个或者更多个表进行join连接时,如果每个o原创 2020-06-28 23:46:28 · 310 阅读 · 0 评论 -
从外部数据源接入到kafka及kafka存储数据的原理机制
1、外部数据是怎样的接入到kafka的?外部数据接入到kafka的流程示意图:(1)接入数据流程(1)producer先从broker-list的节点中找到该partition的leader;(2)然后producer将消息发送给作为leader的partition;(3)leader收到消息后,将消息写入本地log;(4)followers从leader中pull消息,实现replication的副本备份机制,同样写入本地log;(5)replication写入本地log后向leader发原创 2020-06-19 22:33:34 · 2282 阅读 · 1 评论 -
大数据开发面试的总结-第四篇
1、hdfs读写文件的机制(1) HDFS集群角色:NameNode、DataNodeHDFS集群分为两大角色:NameNode、DataNodeNameNode负责管理整个文件系统的元数据DataNode 负责管理用户的文件数据块文件会按照固定的大小(blocksize)切成若干块后分布式存储在若干台datanode上每一个文件块可以有多个副本,并存放在不同的datanode上Datanode会定期向Namenode汇报自身所保存的文件block信息,而namenode则会负责保持文件的副本原创 2020-06-17 17:55:03 · 620 阅读 · 0 评论 -
hive架构介绍、SQL引擎与NoSQL引擎的对比
hive架构介绍、SQL引擎与NoSQL引擎的对比什么是hive?什么是数据仓库?数据仓库的构建过程OLTP应用和OLAP应用数据仓库中的数据模型什么是hiveHIVE的体系结构hive的体系结构之元数据hive的体系结构之HQL的执行过程hive的体系结构什么是sql引擎?hive onHive on Spark和Spark on Hive之间的SQL和计算引擎是一模一样的,如果区分?Spark-SQL、Hive on Spark、Spark on Hive使用场景Hive参考什么是hive?hive原创 2020-06-16 21:47:44 · 1592 阅读 · 0 评论 -
大数据开发面试的总结-第三篇
大数据开发面试的总结-第三篇sql常考题型(1)、sql 分组取每组的前n条或每组的n%(百分之n)的数据(2)、sql 分组取每组的前n条或每组的n%(百分之n~百分之m,例如取20%至30%)的数据(3)、算出用户购买时间的平均间隔、最长间隔及最长间隔对应的时间(1)、sql 分组取每组的前n条或每组的n%(百分之n)的数据1)按UserID分组查询出每组条数,rn从1递增;SELECT * ,ROW_NUMBER() OVER(partition by b.UserID order by b.U原创 2020-06-16 19:15:11 · 322 阅读 · 0 评论 -
spark解析json数据
1. json数据格式–定义JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。2.json数据格式解编码(2.1,2.2两种方法)2.1 json函数实现解编码:json.dumps及json.loads函数描述json.dumps将 Python 对象编码成 JSON 字符串json.loa...原创 2019-01-02 22:12:10 · 1149 阅读 · 0 评论 -
python读取文本数据
总结(1)推荐使用 with 语句操作文件 IO。(2)如果文件较大,可以按字节读取或按行读取。(3)使用文件迭代器进行逐行迭代。1. python读取文本文件实现机制读写文件是最常见的IO操作。Python内置了读写文件的函数.读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文...原创 2019-01-03 21:56:54 · 540 阅读 · 0 评论 -
Python多进程Pool与Process区别,以及用Process实现Pool--part1
Python多进程Pool与Process主要区别(1)Process需要自己管理进程,起一个Process就是起一个新进程;(2)Pool是进程池,它可以开启固定数量的进程,然后将任务放到一个池子里,系统来调度多进程执行池子里的任务;Python中多进程主要是通过multiprocessing实现的,通过私有函数all查看,需带双下划线;import multiprocessing...原创 2019-01-06 18:16:22 · 3213 阅读 · 1 评论 -
Python多进程Pool与Process全局变量区别,以及用Process实现Pool--part2
(1)1.Pool使用全局变量的问题问题简单描述就是无法使用可变的全局变量(比如for循环),可见如下代码示例:from multiprocessing import Pool# def multi_task_1():# print(i, '|', global_var)def multi_task_2(): print(global_var)if __name_...原创 2019-01-06 18:57:57 · 3784 阅读 · 0 评论 -
Python--迭代器,生成器,yield函数的作用
主要分两部分介绍:迭代、迭代器、可迭代生成器、yield 表达式1. 迭代、迭代器、可迭代(1)迭代概念:很多数据就是容器,里面包含很多其他类型的元素。实际使用容器时,我们需要逐个获取容器中的元素。逐个获取容器中的元素的过程就叫做迭代。迭代demo:list_a = [1,2,3]for i in list_a: print(i)上述逐个取list_a对象中元素并...原创 2019-01-15 22:29:00 · 369 阅读 · 0 评论 -
pyspark程序运行报错:no module named XXX(本地pycharm没问题而线上cmd下运行有此问题)
(一)场景问题1)我在本地pycharm项目分支下运行文件,运行方式是:先cd到项目根目录,然后再运行本地提交命令;现在把该部分代码打包上传到线上,直接在命令行运行,就会报no module named XXX错误;本地目录:gd_databizt14subclean_datadata_cleanclean_saic_part1.py(含import clean_u...原创 2019-03-31 00:05:42 · 5459 阅读 · 2 评论 -
Spark Web UI 监控
参考:https://blog.csdn.net/zxl55/article/details/79572475日常铺垫本人最终用于大数据集测试的集群中包含4个节点,每个节点是一个worker,每个worker上启动一个Executor,其中Driver也跑在master上。每个Executor可使用的核数为2,可用的内存为2g,集群中所有Executor最大可用核数为8。conf/spark...原创 2019-08-08 22:46:23 · 267 阅读 · 0 评论 -
大数据开发面试的总结-第二篇
(1)反转二叉树的实现;可用递归实现,代码包含递归,根节点作为遍历条件,左右子节点分别进行兑换。class Node(object): #定义树的结点 def __init__(self, data=-1, lchild=None, rchild=None): self.data = data self.lchild = lchild self.rchild = rchildclass Binsearchtree(o原创 2020-06-12 22:22:41 · 358 阅读 · 0 评论 -
大数据开发面试的总结-第一篇
大数据开发面试前言基于面大数据开发的遇到的一些问题,以及围绕这些问题展开的一些知识点的准备,对大数据开发岗的面试做了一个梳理。努力做一个知识开源的互联网民工,现在阶段还是一个被别人挑选的人,向前进吧。sql/hql/spark sql/数据仓库 方向1. spark sql 数据优化中,需要注意哪些方面?1.使用临时视图减少落到磁盘, 不落到磁盘盘是spark的一个优势,中间步骤 全部用 temporary view 代替临时table ,减少读写hdfs的操作2.spark下建表 文件格式选择原创 2020-06-12 21:14:17 · 2008 阅读 · 0 评论 -
数据库多表联合查询附简单例子
多表联合检索:SQL语句:Select 用逗号隔开的一排列名From 表名1,表名2, …Where 检索条件+连接条件相当于语句如果没有检索条件+连接条件,同理于笛卡尔积θ连接之等值连接:例如:按"001"号课成绩由高到低顺序显示所有学生的姓名(二表连接)Select Sname From Student, SCWhere Student.S# = SC.S# and...转载 2020-02-28 00:01:57 · 1686 阅读 · 0 评论 -
箱型图的数学意义
四分位数四分位数(英语:Quartile)是统计学中分位数的一种,即把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。概念第一四分位数( {\displaystyle Q_{1}} Q_{1}),又称较小四分位数,等于该样本中所有数值由小到大排列后第25%的数字。第二四分位数( {\displaystyle Q_{2}} Q_{2}),又称中位数,等于该样本中所有...原创 2020-02-10 17:13:21 · 2304 阅读 · 0 评论 -
搞懂箱形图分析,快速识别异常值!
搞懂箱形图分析,快速识别异常值!原创clairliu 最后发布于2018-01-31 15:31:44 阅读数 30749 收藏展开最近有很多用户说到了年终需要回顾这一年的工作,根据这一年的数据看看有没有异常的情况,那么哪种图能够清晰直观地展现出这一信息呢?答案只有一个,那就是…箱形图箱形图(英文:Box plot),又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情...转载 2020-02-10 16:44:35 · 1618 阅读 · 0 评论 -
防止粗心的背锅
场景最近在做一个项目,每天忙的不可开交,忙着初验,人手不够,有很多模块已经开发完,前期已跟产品确认过开发的,甲方数据一直加密,导致初验无法达到理想效果,但其实后期甲方数据加密项目组的人都清楚,后面甩锅甩到开发的我身上,说我最后才提出来这个问题,我虽然怼回去了,但还是做了下反思和总结。思考(1)再明确再众所周知的事情,都要正式地把它提出来,自己这边没法达到预期情况原因。(2)对一些操作,最...原创 2019-12-28 17:08:42 · 369 阅读 · 0 评论 -
分类决策树的理解
决策树是一种用于分类预测的算法。其步骤可以分为:1)确定分类的根节点;2)确定根节点后进一步分裂的节点;3)确定最终的叶节点;它是一个递归树,意思是,后面的每一个新的决策树都可以在此基础上进行递归实现。下面就分别来谈谈具体怎么实现构造决策树。对于1)确定分类的根节点:由于构造分类决策树的目标是想尽快使决策树到达叶节点,因此,根节点选择就可以依据其分类信息熵值(或基尼系数)来选,信息熵值越小,越容易原创 2017-11-19 11:25:47 · 572 阅读 · 0 评论 -
for 循环下if...else....,print与return的区别
# -*- coding: utf-8 -*-k={"24":["241","242","2411",'2412'],"12":["123","121","120","1234"], "554":["554sdf"]}def aa(value): for key, item原创 2018-03-09 18:33:36 · 736 阅读 · 0 评论 -
对BP神经网络的正向传播与反向传播的理解
个人对神经网络的理解,主要是正向传播与反向传播的一个简单的示意图,发现了其中的区别,如有问题,欢迎拍砖!原创 2018-03-24 21:56:08 · 4319 阅读 · 0 评论 -
python mock的学习
Python中的模块学习之mock模块 python mock官方文档https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.side_effect*args, **kwargs的理解;side_effectThis can either be a function to be called wh...原创 2018-04-30 11:53:46 · 296 阅读 · 0 评论 -
理解*arg(位置参数)、**args(键值参数)的含义
原文Understanding ‘’, ‘args’,’‘and’**kwargs’刚开始学习python的时候,对有关args,kwargs,和*的使用感到很困惑。相信对此感到疑惑的人也有很多。我打算通过这个帖子来排解这个疑惑(希望能减少疑惑)。让我们通过以下5步来理解: 1. 通过一个函数调用来理解’*’的作用 2. 通过一个函数的定义来理解’*args’的含义 3. 通过...转载 2018-04-30 12:09:39 · 3705 阅读 · 0 评论 -
@staticmethod的理解/类可以不用实例化也可以直接调用
Python staticmethod() 函数 Python 内置函数 Python 内置函数 python staticmethod 返回函数的静态方法。 该方法不强制要求传递参数,如下声明一个静态方法: class C(object): @staticmethod def f(arg1, arg2, …): … 以上实例声明了静态方法 f,类可...转载 2018-04-30 12:15:15 · 1116 阅读 · 0 评论 -
2018-4-22(批量删除文件命令/两种类型的DataFrame,其属性不同,一个可以rename,一个不行!)
(1)批量删除文件 Linux下,直接键入history命令,会将当前账户此前所有的命令都显示出来,未免太多了些。如果我只想查找某种命令,怎么办? 比如说,我只想查找我之前运行过的 “git” 命令 可以这样写: $ history | grep “git” 批量删除文件命令 sudo find . -name ‘*.crc’ | xargs sudo rm -rf (2)pyspa...原创 2018-04-23 21:08:33 · 237 阅读 · 0 评论 -
数据清洗踩坑记
df1 = pd.read_csv(save_csv_path,header=0)# print(type(df1))# print(df1.columns)# print(df1.count)df1 = df1.sample(frac=1)# print(df1.count())# print(df1.drop_duplicates(['company_name','revoke_p...原创 2018-04-23 21:35:34 · 367 阅读 · 0 评论 -
向前兼容和向后兼容
向后兼容:Windows 10要能运行为Windows 3.1开发的程序 向前兼容:Windows 3.1要能运行为Windows 10开发的程序链接:https://www.zhihu.com/question/47239021/answer/368142128 在理解向前兼容和向后兼容前,先要知道这是用在什么结构中的。能用到向后兼容和向前兼容, 那么肯定是存在接口概念的。也就是说存在一...转载 2018-05-01 09:38:54 · 799 阅读 · 2 评论 -
windows安装pgsql的操作
按教程安装windows下pgsql安装 windows下命令行运行创建数据库的操作: 1)win+R键打开cmd窗口 2)默认路径切换到E盘;> cd E: (注意,不要写成cd E:) 再切换到E盘下面的文件夹“1”下,> cd 1 查看当前路径下的东西,输入dir,与linux输入ls类似;pgadmin插入数据报错INSE...原创 2018-05-01 14:46:03 · 3127 阅读 · 0 评论 -
python全局变量,静态变量,实例变量,局部变量
全局变量在模块内、在所有函数外面、在class外面,这就是全局变量静态变量在class内的,但不在class的方法内的,这就是静态变量实例变量在class的方法内的,用self修饰的变量,这就是实例变量局部变量在函数内、在class的方法内(未加self修饰)作用全局变量全局变量供全局共享,全局类和函数均可访问,达到同步作用。同时还可以被外部文件访问。使用...转载 2018-05-02 13:34:52 · 1176 阅读 · 0 评论 -
python-coding技巧
1)将一个类实例化对象featuresres=FeaturesRes()(含有init,变量形式为带self形式的实例变量),转换成字典:for key, value in features_res.dict.items():2)setattr(features_res, key, None)setattr(object, name, value)参数object -- 对象。 #...原创 2018-05-02 14:23:19 · 218 阅读 · 0 评论 -
正态分布PDF,CDF,PPF有关正态分布产生,及其P值和Z值计算,及如何确定正态分布的sigma值,使其满足以下情形:正态分布一个区间x在[0,1]内,均值为0.5,端点坐标为(0,0),(1,0)
问题1:标准正态分布(根据z值求p值),z值代表面积,p值代表概率; 用U表示标准正态分布,临界值Zα满足P(U>Zα)=Zα,即P(U≤Zα)=1-α。当α=0.025时,就是查表中0.975对应的值,0.975在表中1.9那一行,0.06那一列,所以Z0.025=1.96。>>> import scipy.stats as st>>> st.n...原创 2018-04-24 20:19:46 · 28526 阅读 · 0 评论 -
正态分布/最大似然估计
from scipy.stats import normn1 = norm(loc=0.3, scale=1.0) #<scipy.stats.distributions.rv_frozen at 0x7fc3c45bb610>n2 = norm(loc=0, scale=1.0)n1.rvs(size=100) #numpy.array值loc, scale = norm...原创 2018-04-24 20:40:33 · 4136 阅读 · 0 评论 -
python 有关datetime的定义与调用
from datetime import datetimeclass CompanyFeatureHelper(object): def __init__(self): # 数据有效期 self.VALID_DAYS = 30 def is_valid_time_range(self, update_time): """ ...原创 2018-05-02 16:05:16 · 1032 阅读 · 0 评论 -
python数据库操作/python的dump(实际中用的少),dumps,load,loads的用法
1)mysql简单操作:1、启动数据库:2、显示数据库;3,用户管理;4,表操作 python(pymysql)之mysql简单操作 2) 一、概念理解1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串) (1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dum...原创 2018-05-02 17:15:40 · 639 阅读 · 0 评论 -
python通过api获取值,解析
cmp_info = f_e_t_svc.get_cmp_basic_time_node_api(company_name) # 工商信息 cmp_data = cmp_info.get(cmp_model.DATA, {}) #查找的是api返回字典中是否有data这个键,若有,则返回该键对应的值;如果没有则返回{}; class FeatureExtra...原创 2018-05-02 17:51:14 · 2322 阅读 · 0 评论 -
方法返回类的实例,可以继续调用类下面的其他方法,形如:is_cancel = f_d_do.is_cancel_maybe().get_or_else(False)
enterprise_code = u'9'的时候,会走正常预测,因为它有值not is_cancel def _is_normal_predict(f_d_do, prob_maybe): """ 符合正常预测条件 """ is_cancel = f_d_do.is_cancel_maybe().get_or_else(Fal...原创 2018-05-09 14:08:45 · 210 阅读 · 0 评论 -
代码重构
代码重构:重构前:if base_info_dto.result_code == BizConsts.DATA_STATE_SAIC_NONE or base_info_dto.result_code == BizConsts.DATA_STATE_NONE_DX_TIME: return FeatureTimeDealDo(result_code=base_info_...原创 2018-05-09 14:38:43 · 113 阅读 · 0 评论 -
2018-4-17周总结
1)关键词匹配公司,字典整合成无嵌套,无多重循环 2)关键词匹配,需要注意encode编码的问题。首先判断是否是指定的编码,若不是,则转换成相应的编码,然后再匹配; 3)适当增加函数实现,特别是return的作用,利用单独写函数(包含要处理的数据及逻辑)可以直接采用if…else…语句多次return,一旦达到条件就立即返回;如果不单独写函数,这个难以实现,还会继续遍历。浪费时间; 4)直接...原创 2018-04-20 19:50:48 · 115 阅读 · 0 评论 -
将字典或者list或者实例对象等利用json.dumps转换成str,拓展学习实例属性与类属性
#!/usr/bin/env python# -*- coding: utf-8 -*-# @createTime : 18-4-20 下午6:25# @author : miss Chenimport jsonfrom datetime import datetimedef collect_2_json_str(dict_obj): """ dict o...原创 2018-04-20 19:52:51 · 388 阅读 · 0 评论