自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IBoyMan

行万里路 读万卷书 编万千代码

  • 博客(28)
  • 收藏
  • 关注

原创 Java访问kerberos认证的HDFS文件

Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。具体HADOOP的访问HDFS使用Kerberos的作用和原理请自己查阅相关文档。之前做项目时第一次使用Kbs访问HDFS,当时不了解,翻阅资料搞了好久,也入了不少坑,现分享出来,方便大家。下面代码在项目亲测过,可用代码如下:package zqmKerberos;impor...

2020-01-15 15:12:06 2264

原创 Mapredeuce获取文件数据对应的目录

      在MR里有个关键的"环境变量"context(上下文),利用它可用做好多事,比如传参等。     当然,获取文件数据对应的目录也少不了它,其实就是简单的一句代码:    String filepath = ((FileSplit) context.getInputSplit()).getPath().toString();    filepath就是此时你map接受数据所在...

2019-01-31 15:58:03 401

原创 Mapredece(MR)的reduce join、解决map端加载海量配置文件报内存溢出问题(OOM)

   前面的一个博客写到mr加载配置文件的三种方法都是基于map端加载的,当配置文件非常大时,map加载会报内存溢出(OOM)或报GC overhead limit exceeded,此时应该考虑reduce端加载。当然reduce端的加载也存在缺点,会造成shuffer过程的耗时。当然,任何一个程序都不是那么完美的,时间和空间就是鱼与熊掌不可兼得。  Reduce端加载的核心就是:在redu...

2018-11-14 11:12:09 792

原创 Java判别编码是utf-8或gbk

实例代码如下:import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.regex.Matcher;import j...

2018-09-30 14:31:46 4005

原创 scrapy设置随机User-agent、scrapy爬取大量网页、设置爬虫请求并发数

     对于爬虫攻城狮而言,爬虫的最大敌人就是反爬虫。在多次请求网页时(爬取大量url时),避免被地方封锁掉,User-agent代理的随机跳变就成了反爬虫的的第一步也是必须的一步的拉。一:设置随机User-agent(User-agent文件自行准备)    scrapy里怎么随机跳变User-agent呢?当scrapy项目创建完成,执行爬虫程序时,首先会先读取setting文件...

2018-07-29 12:06:10 4750

原创 Spark实现SQL的count(*),count(distinct * *) 即pv、uv

自己上代码,如果不理解的地方,可以百度或留言import org.apache.spark.{SparkConf,SparkContext}/** * Created by zhang on 2018/6/29. */object WordCount { def dealTime(line:String) ={ line.substring(0,10) } def ...

2018-07-03 16:04:06 8360

原创 Hive里实现行数据的拆分、一行转多行、行转列、explode使用

    在做数据转换、清洗的过程中,经常会对行进行拆分、一行数据拆分为多行数据,下面是简单的例子:    如图表里有如下数据:最终要得到结果如下:先用split进行分割得到一个数组,在用explode拆分数组。LATERAL VIEW explode(split(b,',')) zqm AS num:解释 zqm:指代虚标视图的名称(不可缺少),num:处理后数据的名称。对比两个Hsql,使用LA...

2018-06-04 11:00:08 22335 5

原创 shell加python实现程序自动化控制

为做到数据的实时传输(实时:当前时间传输上一个小时的数据),shell用于控制整个流程,python用于处理数据。shell代码如下:#bin/bash########### 学车运行脚本## 编写者:zqm## 日期:2018-04-04## 调用方式:nohup sh duduxueche.sh day/hour > ../log/duduxu...

2018-05-14 10:23:09 3667

原创 Pandas里groupby的应用

Groupby是pandas用于数据分析一个强大的动能函数,很多对数据的清洗、转换、聚合都需要用到。具体功能会一一介绍,博客也会慢慢更新。一:获取groupby分组后每组的具体数据获取分组数据:(每一个分组也是一个DF)...

2018-05-12 10:35:05 2702

原创 pandas里applymap、apply、map、agg、groupby、自定义函数的使用

Pandas里三种调用函数应用的方法: 1:apply作用于DF的列或行 2:applymap作用于DF的所有元素 3:map作用于Series的所有元素 agg函数很多情况下都是和groupby组合使用,通常指代分组聚合,它和apply的区别不是很明显,一般当调用自定义函数,没有聚...

2018-05-10 18:13:33 8719

原创 intellij的安装、intellij搭建scala环境

一:下载intellij可执行文件,本文用的是ideaIU-2016.3.exe二:双击exe文件开始安装,具体一系列操作如下图    1:        2:    3:4:5:6:去插件依照项目酌情考虑7:8:9:然后选择自己安装jdk的路径,最后就ok啦...

2018-04-28 13:36:07 344

原创 linux学习笔记

www.kernel.org:linux官网www.netcraft.com 看某一网站后台的服务器是什么操作系统。   在命令提示符下(shell)输入的内容对系统来说都是命令,系统会默认去环境变量PATH中找此命令所在的路径下的程序(文件),如果PATH没有给出路径会报“command not found”错,解决办法:1、在PATH中添加此路径 2:用全路径执行命令linux的命令: 内置命...

2018-04-18 21:13:33 217

原创 Mapreduce(MR)设置多个job的任务运行

          MapReduce多个job任务其本质原理就是job2任务依赖job1任务的返回结果即job1的输出路径是job2的输入路径。job2任务的启动依赖job1任务结束所返回的状态。        依据自己的实际经验:多个job的串行或并行触发,我认为还是分开写几个程序,用脚本控制其执行顺序,这样便于程序的调试,管理。           当然,选择使用那种情况也是依赖项目的需求而...

2018-04-14 11:25:13 3845 8

原创 MapReduce(MR)框架里shuffer过程中Partition的使用

Partitioner类:主要在Shuffle过程中按照Key值将中间结果分成R份,其中每份都有一个Reduce去负责。使用的时候可以通过job.setPartitionerClass()方法进行设置,实现getPartition函数,默认的使用hashPartitioner类。举一个简单的例子:在Hdfs文件系统下有这样一个txt,txt的数据如下:红色方框是时间戳时间戳的日期是从8月20到9月...

2018-04-12 13:47:20 585

原创 Mapreduce(MR)读取配置文件的三种方式,遍历HDFS目录文件

第一种方式:    如果配置文件数据不是很大,可以放在本地,然后在打包进去,代码如下:第二种:    如果配置文件数据比较大,可以传到HDFS里,以传参的形式加载,代码:这种方式需要在Main里设置参数位置,核心代码如图:第三种: 配置文件已经在HDFS上存在(以part文件形式存在,第二种是传上去的文件不是part格式,比如txt形式),以传参的形式加载,代码:这种方式也要在Main设置参数的位...

2018-03-13 14:03:58 7753

原创 linux 里awk的使用

统计文本数据列字段有多少种:more 1.txt |awk -F "\t" '{print NF}'|sort|uniq|more输出最后一个字段的内容:more 1.txt |awk -F "\t" '{print $NF}'|more按列文本某列求总和:cat 1.txt | awk -F "\t" '{sum += $7};END {print sum}' |less按口径筛选数据:cat ...

2018-03-09 15:05:05 241

原创 python pandas 实现SQl的count(*),count(distinct **)

实现也非常简单,不过多啰嗦,见代码注释:pv uv 代指 select host,count(*),count(distinct ad) from table group by ;# -*- coding:utf-8 -*-import pandas as pdfrom datetime import datetimedef Main(): print("开始。。。。。...

2018-03-09 10:43:59 17185

原创 Python解析、提取url关键字

解析url用的类库:    python2版本:  from urlparse import urlparse import urllibpython3版本: from urllib.parse import urlparse import urllib.request     研究了不同的url规则发现:只要在搜索关键字是用=嫁接的,查询的关键在解析后的query...

2018-03-08 13:12:14 9243

原创 python处理大数据文件,set、enumerate使用,python传参,获取文件路径

### enumerate(ad_set,start=1)### start=1:指定索引起始值#-*- coding:utf-8 -*-#唯一号码转家庭、非家庭#编写者:zqm#日期:20170810#功能:分别找出家庭,非家庭用户,家庭的编号转jz编号,非家庭重新编号且相同编号相同#####################################...

2018-03-05 10:59:47 1179

原创 shell里expect自动输入密码

通常在写shell时,使用scp、ssh时总要手动输入密码,是一件很烦人的事情,使用expect可以免手动数据的麻烦。有如下脚本里需要使用expect调到另一台服务器里做其他操作,代码如图:主要代码在下图73行#bin/bash########### GP项目需求的启动脚本## 编写者:zqm## 日期:2018-02-09## 调用方式:nohup sh ...

2018-03-02 10:11:53 3182

原创 python进行拆分大文件

python按指定行数把大文件进行拆分如图大文件有7000多万行,大小为16G需要拆分成多个200万行的小文件代码如下:# -*- coding:utf-8 -*-from datetime import datetimedef Main(): source_dir = '/jz_yuanshi_list0206.txt' target_dir = '/...

2018-03-02 09:25:42 18753 12

原创 SQL实现相邻两行数据的加减乘除

SQL实现表里数据按一定顺序排序后,按某几个字段分组后相邻两行数据实现加减乘除运算。思路:1:先把表数据分组排序后打上序号标签2:根据需求把标签字段加/减一上代码:select distinct a.phone,from_unixtime(cast(floor(a.ts/1000) as bigint),'yyyyMMdd HH:mm:ss'),chafrom table ajoin...

2018-03-01 09:45:08 24468

原创 SQL里concat_ws()、collect_set()的使用

concat_ws(合并时的分隔符,合并字段1,字段2。。。)collect_set(字段):根据某个字段分组后,把分在一组的数据合并在一起,默认分隔符','eg:select jzad,os_type,concat_ws(',',collect_set(host))from (select jzad,os_type,host,count(*),row_number() over(pa...

2018-03-01 09:20:30 6337

原创 shell自定义函数和调用

本文主要是为了方便自己以后查找相关知识使用!#!bin/bash####### 编写:zhangqm## 日期:2018-01-30## 简述:胶子月程序流程## 调用方式:nohup sh jz_process.sh click_start_time click_end_time adcookie_start_time adcookie_end_time > ${log}/jz_...

2018-02-28 21:47:21 2509

原创 python读写文件去重、RE、set的使用

Python读写文件是去重存储数据,RE、set的使用# -*- coding:utf-8 -*-from datetime import datetimeimport redef Main(): sourcr_dir = '/11yue_all.txt' target_dir = '/regular_get.txt' uset = set...

2018-02-28 16:00:33 2404

原创 shell获得某月最后一天

代码如下:daytime=20180227## 获取本月 month=${daytime:0:6}## 当月的最后一天monthEndday=${month}$(cal ${daytime:4:2} ${daytime:0:4}|perl -0nle 'print+(split)[-1]')echo $monthEndday这样就OK啦...

2018-02-27 22:39:50 2526 1

原创 pandas里map、lambda、merge的使用

pandas里map、lambda、merge的使用注意:map()为Series的函数,DataFrame不能使用,DataFrame用applymap()# -*- coding:utf-8 -*-from datetime import datetimeimport pandas as pddef Main(): print("开始。。。。。") ...

2018-02-27 18:26:08 4570

原创 python、pandas文件合并、数据去重

目录下有如图60个txt文件,每个txt文件里的数据大概有7000万行目的:把每个txt文件里的数据去重后合并60个文件为一个总文件,然后把总文件里的数据按第一列、第二列分组第三列求去重后出现的次数每个文件的内容如下:代码如下:# -*- coding:utf-8 -*-from datetime import datetimeimpor...

2018-02-27 12:42:38 2143

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除