![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术
J小白Y
一只想学习更多知识的小白,研究方向:大数据、人工智能(推荐算法、NLP等)!目标:每天进步一点点~
生活是你和自己竞争,而不是别人!
展开
-
【ClickHouse】表引擎详解
目录1.日志引擎系列--Log系列1.1TinyLog1.2Log1.3StripeLog2.Special系列2.1Memory2.2Merge2.3Distributed3.MergeTree系列--合并树引擎系列3.1MergeTree3.2ReplacingMergeTree3.3CollapsingMergeTree3.4VersionedCollapsingMergeTree3.5SummingMergeTree3.6Aggregati原创 2020-05-19 14:00:59 · 4051 阅读 · 0 评论 -
Anaconda中配置Pyspark的Spark开发环境--详解!
这篇文章,真的经历了很长时间,本身对java和电脑的环境变量不熟悉,走了很多弯路,以此记录下安装的新路历程,分享给大家。目录1.在控制台中测试ipython是否启动正常2.安装JDK3.安装Spark并配置环境变量4.Pyspark配置5.测试Pyspark是否安装成功1.在控制台中测试ipython是否启动正常既然要在Anaconda中配置s...原创 2020-05-08 16:50:49 · 10245 阅读 · 5 评论 -
【Python】Print的进阶用法
在Python中我们经常使用到Print操作,那么,我们真的了解这个函数嘛?Print函数有很多种用法,如何优雅的使用print的呢?本文,都针对该列表进行输出,看下print的强大吧~values=['a','b','c']目录1.常规用法1.1全部输出1.2带有解释的输出2.进阶用法2.1全部输出2.2带有解释的输出1.常规用法1....原创 2020-04-03 15:46:03 · 684 阅读 · 0 评论 -
【shell】如何使用shell从HDFS上下载文件传入并调用Python脚本
之前小白已经对shell调用Python脚本有过一些介绍(https://blog.csdn.net/Jarry_cm/article/details/95074336),可参考该博文。本篇主要介绍shell脚本如何从HDFS上获取文件,和文件的引用。1.从HDFS获取文件到当前路径这个步骤的前置步骤就是首先在HDFS上已经上传了文件,然后获取文件到当前路径。hdfs...原创 2020-03-24 14:57:52 · 925 阅读 · 0 评论 -
【shell】shell脚本Linux环境mutt发送邮件(实现单邮件循环发送和根据条件循环发送)
之前用过shell脚本发送报表,不过都是单个脚本发送一个报表,最近使用到根据条件循环发送报表的情况,也从同事那里学到这个技能。这里对shell发送邮件做一些总结。 1.单个脚本实现单封邮件的发送这种就很简单了,直接发送邮件,下面来一个案例。下面python命令是在python环境下运行python代码(用来结果转为excel文件,最终作为附件发送)mutt命令下面再一...原创 2020-02-28 19:51:20 · 1080 阅读 · 0 评论 -
【数据库】Hive SQL 正则表达式进阶二(regexp_extract函数进阶使用)
在之前文章中(文章如下),小白有讲过正则的三个函数,替换、截取等操作。在工作中,又遇到了其他的问题,这里做一个进阶的讲解文章,欢迎遇到类似问题的小伙伴一起学习交流。初级用法参照下面的文章Hive SQL 正则表达式进阶一(regexp的三个函数)https://blog.csdn.net/Jarry_cm/article/details/87272189场景一有以下几...原创 2020-01-15 20:23:18 · 8972 阅读 · 0 评论 -
【Git】Git学习之删除GitHub上的仓库repository
小白之前的博客中已经介绍了Git的基本使用,掌握之前的内容,就可以开始用起来啦!不过,在使用过程中,大家可能会在GitHub中创建很多测试respository,那么如何删除这些测试库,小白这篇文章就介绍一下~1.打开需要删除的仓库,点击红框中的setting2.点击后出现下面页面,然后拉到页面最下方拉到最下方如下页面,点击圆框中按钮3.点击后出现下面页面...原创 2019-12-11 19:39:37 · 464 阅读 · 0 评论 -
【Git】Git学习之远程库操作
之前文章中小白讲了本地仓库和工作区之间的基本操作,这篇博客小白整了了一下远程库的一些操作。首先,确认自己已经申请了GitHub且有了.ssh文件,由于小白之前已经都操作完了,这里就不再重新来一遍,过程很简单,可以任意百度,轻松找到方法。下面是小白电脑中已经存在的内容,其中id_rsa是私钥,id_rsa.pub是公钥,私钥不可外传,公钥可以。其中公钥的内容我们下一步要用到。...原创 2019-12-10 21:20:49 · 441 阅读 · 0 评论 -
【Git】Git学习之创建版本库
对于Git小白是试了一次又一次,每一次都要搜各种教程,由于不经常使用,还是经常忘记,于是决定将每次用到的一些操作命令记录下来,也方便以后的查找,也做一个系列的分享。首先,从百度图片中盗个图: 下面是GIT的流程图,先整体介绍下GIT的工作流程,每个小白最开始用GIT时,都需要先创建一个本地的工作文件夹,这个用来本地操作文档,然后可以使用add命令将本地创建的文档上传到暂...原创 2019-12-10 18:32:09 · 2467 阅读 · 1 评论 -
【shell】服务器本地上传,下载文件到hdfs里面,并用shell脚本调用python
如果将文件放到服务器中,那么当遇到服务器下线的时候,之前所有做过的JOB都会面临修改的问题,如何避免这种情况呢?小白最近遇到这样的问题,以下是解决方案。 将服务器上的文件上传的HDFS上,在shell脚本调用时,再get到当前路径,就可以了。下面就讲一下,如何操作:1.首先,在HDFS上创建一个自己使用的大目录#命令:hdfs dfs -mkdir hdfs:/...原创 2019-10-24 19:44:16 · 991 阅读 · 0 评论 -
【shell】shell调用python脚本--参数传递
在工作中,我们会碰到使用shell脚本调用python脚本,那么如何使用?1.shell单纯的调用python脚本,不传递参数shell:file_path="/home/chen_lib"python_name="test.py"python $file_path/$python_name对的,就这么简单,file_path是你的公共目录,所有文件都放在这个...原创 2019-07-12 18:53:02 · 6579 阅读 · 0 评论 -
【Python】如何查看内置函数的用法及其源码?
在用Python进行各种分析的时候,我们会用到各种各样的函数,比如,我们用SQL时,经常使用join、max等各种函数,那么想看Python是否有这个函数,这个时候可能大部分人会百度,那么如何不使用百度,而用Python本身来查找函数,学习函数的用法呢?下面,小白就总结一下自己一些经历~ 比如,我们在用math模块,但是不知道这个模块下是否有自己常用的函数,那么如何做呢...原创 2019-06-22 21:03:40 · 42406 阅读 · 17 评论 -
【Python】Jupyter中.ipynb如何转换为.py文件
众所周知,Jupyter Notebooks 允许数据科学家创建和共享他们的文档,从开发代码到出分析报告都可以。帮助数据科学家简化工作流程。由于这些以及你将在下面看到的原因,Jupyter Notebooks 成了数据科学家最常用的工具之一。 在jupyter notebook中,因为解析文件的方式是基于json的,所以默认保存的文件格式是.ipynb。而.ipynb文...原创 2019-06-22 20:14:08 · 42346 阅读 · 4 评论 -
【数据库】HIVE SQL:直接建表,like建表,as 建表小结
工作中,根据场景不同,可能建表方式不同,有时候用like、as方式建表会达到事半功倍的效果,下面是小白总结的三种创建表的方式。1、使用create命令创建一个新表create命令建表,参数不同,也有些许的区别,下面来看一下,创建一个带有分区的表,分区按天,取名为d可以看到分区是用partitioned by方式,指定分区的参数,另外下面的stored as是用来指定存储的...原创 2019-06-22 19:38:59 · 6027 阅读 · 0 评论 -
【大数据】Spark的shuffle过程(Map Reduse的shuffle过程)及数据倾斜的原因及处理
小白最近很长一段时间,都遇到了大数据量,JOB运行慢的问题,看一些优化方法的时候经常提起spark的SQL语句执行过程,对于没有认真研究过SPARK的运行过程的小白来说,看的一知半解,为了打破这个情况,小白认真学习了一下底层,终于清晰了一些,下面小白就总结一下(话术教小白,没有那么的专业,见谅哦) 一般情况下,我们只是自己写了一段SQL,放在服务器上,他就自动运行...原创 2019-06-15 14:29:46 · 596 阅读 · 1 评论 -
【Python】将数据传入list中时,如何进行数据类型转换(map,int()用法)
相信大家在使用Python时,都遇到过数据类型的问题,数据类型不一致,那么就会导致输出结果错误。那么如何将一个数据读入到list中时,同时进行数据类型转换呢? 比如有下面这个数据,那么需要读入前三列,并且读入类型为int,怎么做呢?a=['1','2','3','4','5']方法一b = list(map(int,a[0:3]))方法二b = [in...原创 2019-06-22 19:37:54 · 9881 阅读 · 0 评论 -
【Python】字典遍历(dict遍历)
字典也是我们在做数据分析时经常用到的类型,之前小白有总结过DataFrame的遍历,这篇博文,小白整理了自己遍历字典时的几种方法。 众所周知,字典是键值对的组合,那么对字典的遍历就自然而然的包含了对键和值的遍历,下面依次介绍遍历键、值,键值三种情况的遍历。首先,创建一个字典,以便下面的遍历。dict = { '小明':129, '小兰':148...原创 2019-08-16 20:06:12 · 156749 阅读 · 3 评论 -
【Python】如何用hive调度堡垒机上的python脚本
工作中,如果我们本地要操作的数据量大,那么主机是跑不起来python脚本的,这个时候,就要用到服务器(也叫堡垒机)了。那么如何用HIVE调用堡垒机上的python脚本呢?今天小白就总结一下步骤和一些注意事项~1.首先将Python脚本上传到堡垒机上2.上传后,在HIVE中编写shell JOB#这里设置地址等变量,可以重复使用file_path="/home/chen_l...原创 2019-06-22 19:38:28 · 1619 阅读 · 0 评论 -
【Python】Anaconda安装Tensorflow
相信各位大神都有安装Tensorflow失败N次的经历,小白也是如此,之前写过一篇博文,用Anaconda Prompt安装Tensorflow,对,很成功,在Anaconda Prompt上完美使用Tensorflow,BUT,在Spyder上是无论如何都报错,说没有次moudle,小白实在不懂为何,后来又换了今天讲的这种方式进行安装,非常完美。所以,如果是已经安装了Anacon...原创 2019-07-13 16:13:22 · 365 阅读 · 0 评论 -
【数据库】HIVE SQL之lateral view json_tuple和lateral view explode联合使用
在工作中,处理数据时遇到的情况是多种多样的,这次就遇到一种相对有一丢丢复杂的情况,案例如下:String类型的字段,案例如下:[{"key":"upload-screenshot","value":false},{"key":"choice","value":"已解决"}] 现在需要把key和value解析出来。乍一看,直接用get_json_obj...原创 2019-07-20 17:16:30 · 3944 阅读 · 0 评论 -
HIVE导出数据命令hive -e的使用(导出文件前先删除原文件的内容)
小白最近在工作中遇到,从hive表中向服务器导出txt文档的问题,之前没有注意到一个问题:情景一:导入到csv文件 之前一直是将hive表中的查询结果导入到csv文件中,用下面的语句执行:每次的csv文件都是覆盖上一次的结果file_path="/home/chen"file_name_t="test.csv"hive -e "set hive.re...原创 2019-07-27 10:32:19 · 2340 阅读 · 0 评论 -
【Python】class中init函数、self参数详解
小白在刚开始用class来创建对象的时候,不理解为啥class中的方法都要先声明一个__init__方法,而且方法里都有self这个参数,后来,小白做了一个试验,发现这两个小的知识点有大的用处。 首先,init方法前面带有两个横杠,而不是一个,小白学习之初用一个横线遇到报错的情况。在Python中,遇到此种形式开头的函数,就是私有方法,不可以被外面的类调用。这个方法可以...原创 2019-08-08 19:22:49 · 3200 阅读 · 0 评论 -
【Python】DataFrame遍历
在数据分析的过程中,往往需要用到DataFrame的类型,因为这个类型就像EXCEL表格一样,便于我们个中连接、计算、统计等操作。在数据分析的过程中,避免不了的要对数据进行遍历,那么,DataFrame如何遍历呢?之前,小白每次使用时都是Google或百度,想想,还是总结一下~ 小白经常用到的有三种方式,如下:首先,先读入一个DataFrameimport pa...原创 2019-08-16 19:06:39 · 44677 阅读 · 1 评论 -
【Python】List遍历
List也是Python数据分析时经常用到的一种存储类型,这篇博文小白主要分享List的遍历。首先,生成一个List:list = [111,222,333,444]下面,用几种方法来遍历该List:(1)小白首先使用我们最常循环时用到的range函数来遍历list,从结果可以看到将索引和值都输出,其中索引从0开始。(2)对于function2,可以看到小白贴出了...原创 2019-08-16 20:21:52 · 4423 阅读 · 0 评论 -
【Python】set遍历
set是一组数,无序,内容不能重复,通过调用set()方法创建,那么如何对set集合进行遍历呢?1.简单的set:s1 = set(['111', '222', '333'])对于s1,是一组数,有几种方法可以遍历:function1:直接用in的方式遍历set集合。function2:用iter()迭代器来遍历集合看到前两种方法可能有人就有疑问了,为啥和上面写...原创 2019-08-16 20:51:29 · 12254 阅读 · 0 评论 -
【Python】Tuple遍历
小白之前博文已经写了Dtaframe、set等的遍历,这篇博文来总结下遍历Tuple,Tuple一旦创建后,元素不可变,遍历和List其实是一样的,下面来看下吧~ 首先,创建一个tuple:#create a tupletuple = ('111','222','333') 接下来,用几种方式来遍历Tuple:对于方法1、2、3、4都...原创 2019-08-17 15:38:38 · 2912 阅读 · 0 评论 -
【Python】List的extend和append详解
在数据分析时,小白经常用到extend和append函数,但是经常两种搞不清楚,每次都需要试一下,可能大家也有类似的疑问,总结一下,加深对两个函数的理解。 extend和append函数是List列表的两种对列表的扩展函数,先来看下,最基本的使用List添加List首先创建两个List:L1 = ['aaa','bbb','ccc']L2 = ['ddd','...原创 2019-08-17 16:21:39 · 2669 阅读 · 1 评论 -
【数据库】HIVE SQL中的字符串连接函数(CONCAT)
众所周知,在MySQL、SQLSERVER中,都有字符串连接函数,那么,HQL也不例外。在学习、工作中,不可避免的会遇到需要将两个字段合并展示的需要。最基础的一个方法是:CONCAT('abc','def')这个函数的用法有一点需要注意,就是当遇到字段为空时,空的形式不同,结果也不同。eg:SELECT CONCAT('abc',NULL) 结果为NULL SEL...原创 2019-02-11 15:25:40 · 15653 阅读 · 2 评论 -
【Python】Windows环境下安装graphviz和pygraphviz
一、安装graphviz1.下载匹配电脑的版本 安装graphviz可视化工具网址:http://www.graphviz.org/download/2.双击下载的msi文件,一路next(记住安装路径,后面配置环境变量会用到路径信息),安装完成之后,会在windows开始菜单创建快捷信息,默认快捷方式不放在桌面3.配置环境变量将graphviz安装目录下的bin...原创 2019-06-22 19:38:46 · 5885 阅读 · 4 评论 -
【Python】报错:name 'reload' is not defined
小白拿起自己很久前在2.7版本的一段代码在3.6版本中执行时,遇到这个报错,想来应该是版本的问题,3.6不支持该语法了,后来发现,确实是这样,那么需要完成同样的事情,想以UDF-8进行编码,在两个版本如何做呢?在python2.7中:需要重新加载sys模块,并设置默认编码utf-8import sysreload(sys)sys.setdefaultencoding(...原创 2019-06-15 14:28:57 · 1804 阅读 · 0 评论 -
【数据库】HIVE SQL中两种日期的转换
工作中,经常遇到各种格式的日期形式,而且又需要进行关联操作,这个时候怎么办呢?之前每次都是用到的时候各种查资料。这次就总结一下,相关函数,后期不定时持续更新~Exp1:'2018/11/5'和'2018-11-05'两种类型的进行日期关联?这时,就用到大家常用的函数:unix_timestamp在日常使用时,可能都用来取时间戳了,比如:select unix_time...原创 2019-04-07 23:02:09 · 10368 阅读 · 0 评论 -
【数据库】HIVE SQL -left join (on 和 where条件放置的区别)
在使用left join的过程中,总是遇到一个问题,就是将条件放在on中还是where条件中。在查过一些资料和实际操作后,总结了一下: 在多张表连接时,都会生成一张中间表,然后再将这张临时表返回给用户。 在用left join中,on和where条件的区别如下: (1)on条件是在生成中间表时使用的条件,它不管on中的条件是否为真,都会返回左表中的记录。...原创 2019-04-07 23:03:32 · 11894 阅读 · 2 评论 -
【数据库】HIVE SQL中join不支持非等值连接如何解决
小伙伴们在HIVE中写SQL时,会遇到一种情况,当我们想把不相等的情况拿出来时,无法直接写字段A<>字段B,否则会报错。那么,在工作中,有这样一个场景:我们想从一个订单表中,剔除测试用户的订单,该如何实现呢?select a.uid,a.orderid from table1 a --订单表 left join table2 b --测试用户id表 ...原创 2019-04-07 23:02:42 · 10352 阅读 · 1 评论 -
【数据库】HIVE SQL--排序
最近听小伙伴说了一个这样一个问题:学生表有两列姓名,分数,求张三在班级的排名。(注:学生姓名没有重复,分数可以重复,同分数的人排名一样)样例数据:student score 张三 90 李四 100 王五 80 王小明 80 李小鹏 70 据说万能的知识库有一个这样的方法:我试验了一下,未能成功。方法如下:se...原创 2019-03-09 16:09:17 · 6489 阅读 · 0 评论 -
【数据库】HIVE SQL中三种join中的坑(自动过滤掉两边同为null的数据)
最近在使用union all的过程中,遇到了一些问题,又GET了一个知识点,作为一个总结,记录一下~where条件的坑:案例,若一个字段的值为1,2,NULL(自然空,而不是'NULL')这时,如果代码这样写:select id,data,name from aa where name <> 'us'那么,为空的这一条记录是不会被筛选出来的。id...原创 2019-03-09 16:08:56 · 16840 阅读 · 4 评论 -
【数据库】Hive SQL 正则表达式进阶一(regexp的三个函数)
对于从事数据方面工作的同学来说,不可避免的要使用到正则表达式。对于一个正则小白来说,第一次在网上搜正则表达式时,我表示,一脸生无可恋。为了方便这方面以后的深入学习及使用,特意做一个进阶式记录,也供各位小伙伴参考。1.regexp/rlike 匹配符合条件的数据,若要做排除,前面加not即可。select roomname from aa where roomname ...原创 2019-02-21 20:51:19 · 21112 阅读 · 0 评论 -
【Python】时间处理--由今年的任意日期得到对应去年的相应周数的周一日期
比如输入2020年1月25日,得到对应的2019年对应周数的周一日期result:原创 2019-01-28 16:55:35 · 5170 阅读 · 0 评论 -
【数据库】HIVE SQL实现本月一号、月底的提取
在工作中很多时候会遇到需要取当前月一月的订单、产量等数据,那么如何实现呢?首先,当前日期函数,取名为currentday='${zdt.format("yyyy-MM-dd")}'例如:当前日期所在月的一号,取名为currentmontfirstday='${zdt.add(2,0).format("yyyy-MM")}-01'例如:当前月的上个月一号,取名为lastm...原创 2019-01-31 15:40:37 · 20658 阅读 · 0 评论 -
【数据库】HIVE SQL中MAP、String、Struct类型数据解析
1:MAP类型表中数据类型为:map<string,string>表中数据样式为:要解析出city:select env['city'] from table2:String类型表中数据样式为:要解析出env_provinve、env_province或者:fifterlist需要先处理一下才可以取出第一步:第二步:3:St...原创 2018-09-13 16:53:16 · 23986 阅读 · 1 评论 -
Java实现Hive的UDF(案例)
构成一、Java脚本实现想要实现的功能。二、另外一个部分为HQL部分,调用Java脚本对数据进行处理。一、Java部分 编写UDF函数,首先要继承UDF类并且实现evaluate()函数。对于每一行输入都会调用到evaluate()函数。而evaluate()函数处理后的值会返回给Hive。 注意:evaluate()函数的参数和返回值类型只能是Hiv...原创 2018-09-13 11:04:46 · 11522 阅读 · 0 评论