- 博客(357)
- 资源 (5)
- 问答 (1)
- 收藏
- 关注
转载 多进程和多线程的概念
多进程和多线程的概念目录一、多线程是什么? 二、多进程是什么? 三、多线程与多进程,选择谁? 四、并行、并发、高并发等概念一、多线程是什么? 说起多线程,那么就不得不说什么是线程,而说起线程,又不得不说什么是进程。 进程可以简单的理解为一个可以独立运行的程序单位,它是线程的集合,进程就是有一个或多个线程构成的。而线程是进程中的实际运行单位,是操作系统进行运算调度的最小单位。可理解为线程是进程中的一个最小运行单元。 那么多线程就很容易理解:多线程...
2020-06-03 09:48:05 2145
转载 python 多线程就这么简单
python 多线程就这么简单 多线程和多进程是什么自行google补脑 对于python 多线程的理解,我花了很长时间,搜索的大部份文章都不够通俗易懂。所以,这里力图用简单的例子,让你对多线程有个初步的认识。单线程 在好些年前的MS-DOS时代,操作系统处理问题都是单任务的,我想做听音乐和看电影两件事,那么一定要先排一下顺序。(好吧!我们不纠结在DOS时代是否有听音乐和看影的应用。^_^)from time import ctime,sleepdef mu...
2020-06-03 09:37:28 555
原创 Python smtplib.SMTP()和smtplib.SMTP_SSL() 登录邮箱并发送邮件比较
邮件发送流程 邮件的发送是主动行为:主要通过 MUA/邮件客户端软件,将邮件内容发送给对应的服务器 暂存到投递服务区,然后由当前运营商根据邮件特征信息将邮件转发给目标服务器的投递服 务区,此时目标用户的邮件已经发送完成,等待对方收取即可。邮件的收取也是主动行为,用户可以打开邮件客户端软件,通过点击类似于收取这样的行为 就可以从自己邮箱所属的服务器投递区中提取邮件了。什么是POPO3、SMTP和IMAP?服务器地址和端口是什么?返回 POP3 POP...
2020-06-02 21:07:16 21871 1
转载 漫谈数据仓库之拉链表使用场景、原理和在Hive中的实现示例
一、全量表-增量表-拉链表-流水表-介绍1. 全量表:每天的所有的最新状态的数据,2. 增量表:每天的新增数据,增量数据是上次导出之后的新数据。3. 拉链表:维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录而已,通过拉链表可以很方便的还原出拉链时点的客户记录。4. 流水表: 对于表的每一个修改都会记录,可以用于反映实际记录的变更。拉链表和流水表的区别流水表存放的是一个用户的变更记录,比如在一张流水表中,一天的.
2020-05-27 22:06:05 3887
转载 Hive自定义函数UDF与transform的区别和使用例子
Hive自定义函数与transform的区别和使用例子 hive是给了我们很多内置函数的,比如转大小写,截取字符串等,具体的都在官方文档里面。但是并不是所有的函数都能满足我们的需求,所以hive提供了给我们自定义函数的功能。一般有两种方法:自定义内置函数 UDF(Java实现)和Transform关键字(Python)实现一、Transform关键字(Python)实现...
2020-03-29 23:40:13 1472
转载 Linux shell xargs命令详解,xargs与管道的区别
Linux shell xargs命令详解,xargs与管道的区别阅读目录为什么要用xargs,问题的来源 xargs是什么,与管道有什么不同 xargs的一些有用的选项回到顶部为什么要用xargs,问题的来源在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及...
2020-03-28 10:52:33 2999
转载 Linux alias实现命令别名
Linux alias实现命令别名需要经常进入/srv/www/app/account这个目录,每次都得重复的输入这一长串路径进入该目录,显得麻烦而费时,因此可以将“cd /srv/www/app/account”这样一个命令取一个别名,每次只需输入该别名就可以进入该目录Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别名,以后只需输...
2020-03-26 21:37:01 748
转载 linux下,源码的安装之 ./configure --prefix --with解释
linux下,源码的安装之 ./configure --prefix --with解释linux下,源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。过程中用到./configure --prefix --with;其中--prefix指的是安装路径,--with指的是安装本文件所依赖的库文件with:指定依赖--w...
2020-03-26 21:06:01 5001 1
转载 Python的内嵌函数和闭介绍
Python的内嵌函数和闭介绍1.内嵌函数:在函数中定义函数内嵌函数例子1、# 代码段1def fun1(): print('外层函数正在被调用') def fun2(): print('内层函数正在被调用')fun1()'''输出如下:外层函数正在被调用'''例子2:# 代码段2def fun1(): print('外层函数正在被调用') ...
2020-03-15 21:59:30 860
原创 格式化namenode时报错No Route to Host from node1/192.168.3.101 to hadoop05:8485 failed on socket timeout ex
格式化namenode时 报错 No Route to Host from node1/192.168.3.101to hadoop:8485 failed on socket timeout exception: java.net.NoRouteToHostException: No route to host解决方案一、报错信息概要在配置hadoop高可用HA集群的时候,在使用had...
2020-02-17 12:17:26 4090
转载 Linux shell命令行可选参数的getopts命令使用例子
shell命令行可选参数的getopts命令使用例子一、概述getopts [option[:]] [DESCPRITION] VARIABLEoption:表示为某个脚本可以使用的选项":" 冒号如果某个选项(option)后面出现了冒号(":"),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION)VARIABLE:表示将某个选项保存在变量VARIABLE中g...
2020-01-03 20:03:24 3644 1
转载 python中url解析及排序函数sort ()与 sorted() 区别、字典排序及高级用法
python中url解析及排序函数sort ()与 sorted() 区别、字典排序及高级用法一、python如何解析url,获取host和path最近在工作中需要将url的host和path路径分开存储,python内置的urlparse, 支持我们优雅的解决这个问题,参考地址>>> from urlparse import urlparse>>&...
2020-01-02 18:32:06 1938
原创 Spark模拟实现统计出每个域名下面访问次数最多的前三个URL
Spark模拟实现统计出每个域名下面访问次数最多的前三个URL一、需求:现在假设有一个IT教育网站,有Java,PHP,net等多个栏目,下面是模拟实现的网站日志第一个字段是访问日期,第二个字段是访问的URL,其中每个栏目有一个独立域名,如下:java.aaaaaaa.cnnet.aaaaaaa.cnphp.aaaaaaa.cn统计出每个域名下面访问次数最多的前三个URL...
2020-01-02 16:47:21 1036
转载 hive-sql查询结果保留特点小数位数的方法
一、ceil:向上取整ceil(DOUBLE d): d是DOUBLE类型的,返回>=d的最小的BIGINT值spark-hive> select ceil(123.58);_c0124Time taken: 0.093 sspark-hive> select ceil(123.28);_c0124Time taken: 0.109 s二、flo...
2019-12-17 13:27:17 22720 1
转载 Hive分析函数之SUM,AVG,MIN和MAX OVER(PARTITION BY xxx order by xxx,用于求一段时间内截至到每天的累计访问次数、平均访问次数、最小访问次数、最大访问次
Hive分析函数之SUM,AVG,MIN和MAX OVER(PARTITION BY xxx order by xxx,用于求一段时间内截至到每天的累计访问次数、平均访问次数、最小访问次数、最大访问次数Hive提供了很多分析函数,用于统计分析,比如SUM OVER PARTITION BY ORDER BY 是 实现分组累计的计算方法。本文先介绍SUM、AVG、MIN、MA...
2019-12-17 13:16:26 13364
原创 【spark源码系列】pyspark.sql.Row介绍和使用示例
0、Spark SQL和DataFrames重要的类有:pyspark.sql.SQLContext: DataFrame和SQL方法的主入口 pyspark.sql.DataFrame: 将分布式数据集分组到指定列名的数据框中 pyspark.sql.Column :DataFrame中的列 pyspark.sql.Row: DataFrame数据的行 pyspark.sql.Hiv...
2019-12-08 11:36:15 7212 2
原创 【源码解读系列之spark】Spark RDD缓存函数cache() 和 persist()原理和使用
1、RDD的缓存级别顺便看一下RDD都有哪些缓存级别,查看storagelevel.py代码StorageLevel类如下:__all__ = ["StorageLevel"]class StorageLevel(object): """ Flags for controlling the storage of an RDD. Each StorageLevel...
2019-11-24 12:20:33 723
转载 Mysql 日期和时间加减及日期计算相差年、月、周、日数整理
Mysql 日期和时间加减及日期计算相差年、月、周、日数整理1、日期和时间加减select now()-- 获取当前具体的日期和时间 2019-11-13 16:38:20select curdate()-- 获取当前日期 2019-11-13select curtime()-- 获取当前时间 6:38:201.1、MySQL加减某个时间间隔设置当前...
2019-11-13 18:38:46 71884 2
转载 SSLError ssl.c510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
python 采用post方式模拟登录的时候,却报了如下错误:requests.exceptions.SSLError: HTTPSConnectionPool(host='login.sec.xxx.net', port=436): Max retries exceeded with url: /sec/login (Caused by SSLError(SSLError(1, '_ssl...
2019-11-01 20:36:57 927
转载 mysql中的几种join 及 full join,自然连接问题
【注意】:1)、Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现 2)、自然连接:通过MySql自己的判断完成连接过程,不需要指定连接条件。MySql会使用表内的,相同的字段,作为连接条件。自然连接分为内外之分。0、初始化SQL语句:/*join 建表语句*/drop...
2019-10-26 20:14:48 4902 1
转载 Python 中 str.format() 方法详解
Python 中 str.format() 方法详解参考:https://blog.csdn.net/jpch89/article/details/84099277以下建议在版本 python 3.7.4 和python 2.7.16 实验,部分在Python 2.6.6通不过。1. 术语说明str.format() 方法通过字符串中的花括号 {} 来识别替换字段 replace...
2019-10-23 21:09:15 760
转载 hive中的lateral view 与 explode函数,及collect_set函数的使用
大纲: 1、概述 2、explode 使用例子 3、引入lateral view的原因 4、explode与lateral view使用示例1 5、explode与lateral view使用示例2 6、collect_set()函数示例 7、substr()函数示例 8、concat_ws()函数示例1、概述 ...
2019-10-18 16:49:27 3932 5
原创 Hive 自定义函数UDF开发手把手教程—— 创建临时函数和永久函数
Hive 自定义函数UDF开发手把手教程—— 创建临时函数和永久函数 Hive中,除了提供丰富的内置函数(见[一起学Hive]之二–Hive函数大全-完整版)之外,还允许用户使用Java开发自定义的UDF函数。开发自定义UDF函数有两种方式,一个是继承org.apache.hadoop.hive.ql.exec.UDF,另一个是继承org.apache.hadoop.hiv...
2019-10-11 11:58:58 8111
转载 Sublime Text 3 常用插件 —— SFTP
Sublime Text 3 常用插件 —— SFTPSFTP在 Win 下常用 Xftp 软件来和远程服务传递文件,但是要是在项目开发的时候频繁的将远程文件拖到本地编辑然后再传回远程服务器,那真是麻烦无比,但是Sublime中SFTP插件,它让这世界美好了许多。Sublime下的SFTP,只要 Ctrl+S 即可同步本地到服务器。它主要功能就是通过 FTP/SFTP 连接远程服...
2019-10-10 22:01:39 1628
原创 Win10下python 2.7与python 3.7双环境安装教程
Win10下python 2.7与python 3.7双环境安装教程1、python软件下载网址:https://www.python.org/downloads/windows/2、 安装python2.7.16第一步双击安装包,选择你要安装的路径第二步默认next,这里不能配置环境变量,只能安装好后手动配。点击finish安装完成。这样python2和...
2019-10-10 21:55:25 12045 1
转载 【数仓建模】星型模型和雪花型模型比较
一、概述维度模型是数据仓库领域的 Ralph Kimball 大师所倡导的,他的 The Data warehouse Toolkit-The Complete Guide to Dimensional Modeling 是数据仓库工程领域最流行的数据仓库建模的经典。维度建模从分析决策的需求出发构建模型,为分析需求服务,因此它重点关注用户如何更快速地完成需求分析,同时具有较好的大规模复杂查...
2019-09-21 13:24:55 2311
转载 linux shell语法检查或者查看shell脚本执行过程的参数介绍及两种使用方法
shell语法检查或者查看shell脚本执行过程的参数介绍及两种使用方法一、常用参数概述:set -x 与 set +x在liunx脚本中可用set -x就可有详细的日志输出,省的老是要echo了用于脚本调试。set是把它下面的命令打印到屏幕set -u 是显示语法未定义的变量,却使用了set -x 是开启set +x是关闭set -o是查看 (xtrace),...
2019-09-17 19:15:53 10694
转载 Sqoop全量数据导入、增量数据导入、并发导入 (Sqoop进阶)
一、sqoop概述: Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 Sqoop项目开始于200...
2019-08-31 20:42:18 5138
转载 Hive的三个窗口函数排序结果的差异(rank函数,dense_rank函数,row_numer函数)
总结:RANK() 排序相同时会重复,总数不会变DENSE_RANK() 排序相同时会重复,总数会减少ROW_NUMBER() 会根据顺序计算这三个函数常常和开窗函数结合在一起使用案例实操:1,计算没门科目的成绩排名:[isea@hadoop108 datas]$ cat score.txt悟空 语文 87悟空 数学...
2019-08-31 19:40:22 970
转载 Python中: unsupported format character ''' (0x27)
Python中: unsupported format character ''' (0x27)1)MySQL DB使用%运算符将参数放入查询中,因此查询字符串中的任何单个%字符都被解释为参数说明符的开始。2)%在python中三个特殊的符号,如%s,%d分别代表了字符串占位符和数字占位符。例子一、今天写python程序,用pymysql从数据库查询数据,使用like模糊匹配报错:...
2019-07-19 11:32:47 20211 2
转载 【hive创建动态分区】hive使用动态分区插入数据详解
【hive创建动态分区】hive使用动态分区插入数据详解往hive分区表中插入数据时,如果需要创建的分区很多,比如以表中某个字段进行分区存储,则需要复制粘贴修改很多sql去执行,效率低。因为hive是批处理系统,所以hive提供了一个动态分区功能,其可以基于查询参数的位置去推断分区的名称,从而建立分区。 1.创建一个单一字段分区表create table dpartition(i...
2019-07-01 21:18:37 8392
转载 【hive创建动态分区】使用MSCK命令修复Hive表分区
【hive创建动态分区】使用MSCK命令修复Hive表分区一、介绍我们平时通常是通过alter table add partition方式增加Hive的分区的,但有时候会通过HDFS put/cp命令往表目录下拷贝分区目录,如果目录多,需要执行多条alter语句,非常麻烦。Hive提供了一个"Recover Partition"的功能。具体语法如下:MSCK REPAIR TAB...
2019-07-01 21:10:00 1054
原创 【spark exception】org.apache.spark.SparkException java.lang.ArrayIndexOutOfBoundsException 造成数组越界
【spark exception】org.apache.spark.SparkException java.lang.ArrayIndexOutOfBoundsException 造成数组越界当执行以下spark-sql是时候insert overwrite table hive_user_income_detail_daily partition (pday='20190620',i...
2019-06-28 17:01:10 3488
转载 python获取不同时区的时间:通过datetime获取UTC时间ISO格式
python获取不同时区的时间:通过datetime获取UTC时间ISO格式一个热点统计需求,需要限定一个时间范围,计算出该范围内的热点事件,相关数据则以UTC标准时间的ISO时间格式存在mongodb中,和服务器设置的时区UTC+8并不一致。为了解决这个问题,直觉反应是在python中将时区改为UTC时区,然而改变整个服务的时区设置却可能会影响其他逻辑,此种更改最好是能限定在热点逻辑的这...
2019-06-19 21:05:11 17415
转载 python 实现两个list列表逐元素相减,实现合并两个列表,以及zip() 函数介绍
python 实现两个list列表逐元素相减,实现合并两个列表,以及zip() 函数介绍(1)python 两个相同长度得list列表逐个对应元素相减Python中的列表中的元素不能直接相加减,但是可以采用如下方法实现目的:1)循环相减:a = [1,2,3,4,5]b = [5,4,3,2,1]c = [a[i]+b[i] for i in range(0,len(a)...
2019-05-31 20:59:51 68924 1
转载 XShell鼠标选中, 实现快捷复制和粘贴
以前用Putty, 里面有选中后, 点击鼠标右键快速粘贴的功能, 用Xshell后发现默认没有这个设置. 但是Xshell因为界面漂亮得多,功能也丰富得多,并且一直在更新维护, 所以还是喜欢用它. 一次在视频课程上, 看到老师用XShell也实现了和Putty上的功能, 求助度娘, 找到了这个被隐藏起来的好用的功能.1. 鼠标选中, 点击鼠标右键快速粘贴:工具 --> 选项...
2019-05-30 12:15:44 5587 1
转载 理解维度数据仓库——事实表、维度表、聚合表
理解维度数据仓库——事实表、维度表、聚合表一、事实表在多维数据仓库中,保存度量值的详细值或事实的表称为“事实表”。一个按照州、产品和月份划分的销售量和销售额存储的事实表有5个列,概念上与下面的示例类似。 Sate Product Mouth Units Dollars W...
2019-05-23 21:16:22 22348
转载 大数据模块开发----数据仓库设计
大数据模块开发----数据仓库设计1.维度建模基本概念维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。数据集市可以理解为是一种"小型数据仓库"。1.1、维度表(dimension)维度表示你要对数据进行分析时所用的一个量,比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析。这样的按..分析就构成一个维...
2019-05-23 20:24:36 1181
转载 spark用正则表达式处理需要将多个输入文件路径作为输入的问题
一、spark用正则表达式处理需要将多个输入文件路径作为输入的问题1、spark需要处理过去半个月的数据,每天的数据再hdfs上存到一个文件中,将近15个输入目录,此时可以采用如下正则匹配的写法,将代码简化:import datetimedef produce_half_month(thedate): current_day = thedate # current_da...
2019-05-19 20:48:40 2119
转载 Python之 /usr/bin/python^M: bad interpreter: No such file or directory
在windows的IDE开发,部署在linux服务器运行时,需要注意windows和linux的文件编码问题part01:在windows系统下写的python脚本,在linux下赋予权限chmod +x xxx.py 以后,执行./xxx.py运行提示:bash: /usr/bin/autocrorder: /usr/bin/python^M: bad interpreter: No s...
2019-05-19 20:39:04 5852
HelloUDF.zip
2019-10-11
MacDown使用小例子
2018-05-23
使用指针,进一步熟悉链表操作,实现添加,删除,修改,查找,排序等功能
2012-08-08
运算符重载和函数重载
2012-08-08
停车场管理系统
2012-08-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人