wtzhm
码龄10年
关注
提问 私信
  • 博客:160,798
    160,798
    总访问量
  • 78
    原创
  • 406,536
    排名
  • 31
    粉丝
  • 0
    铁粉

个人简介:有梦想没有金钱,想健身没有时间!

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2015-03-02
博客简介:

zhm的博客

博客描述:
想飞的鱼
查看详细资料
个人成就
  • 获得123次点赞
  • 内容获得33次评论
  • 获得232次收藏
创作历程
  • 15篇
    2019年
  • 47篇
    2018年
  • 15篇
    2017年
  • 1篇
    2016年
  • 4篇
    2015年
成就勋章
TA的专栏
  • sparkstream
    8篇
  • 大数据
    9篇
  • sparksql
    22篇
  • hadoop
    6篇
  • hive
    9篇
  • hbase
    4篇
  • linux
    3篇
  • redis
    2篇
  • java基础
    11篇
  • 设计模式
    3篇
  • android开发
    1篇
  • 感悟
    2篇
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

hive 自定义函数UDF

hive 自定义函数UDF1. 内置函数查看内置函数: show functions;显示内置函数的详细信息: desc funcation sum;显示函数的扩展信息: desc funcation extended sum;2. 自定义函数UDF当hive提供的内置函数无法满足业务处理需求时,此时就可以考虑使用用户自定义函数。UDF(user-defined functi...
原创
发布博客 2019.04.25 ·
1457 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Linux常用命令

Linux常用命令1. ls命令就是list的缩写,通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限ls -a 列出所有文件,包含以“ . ”开始的隐藏文件ls -r 反序排列ls -S 以文件大小排列ls -t 以文件修改时间排列ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来eg: ls -l *.sh 列出所有以.s...
原创
发布博客 2019.04.19 ·
492 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

安装github项目的jar包到自己的maven仓库中

安装github项目的jar包到自己的maven仓库中1. 概述在实际开发中,我们可能使用到github已有的开源项目,在使用maven的时候,在maven仓库中找不到这个github项目的maven,这个时候我们需要将GitHub源码打成jar包,安装到自己的maven仓库中。2.例子根据IP地址查找城市名称,使用GitHub项目:https://github.com/wzhe06/ip...
原创
发布博客 2019.04.14 ·
2962 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Azkaban概述详解

Azkaban概述详解本文简单介绍一下Azkaban及其特点。azkaban是一个开源的任务调度系统,用于负责任务的调度运行(如数据仓库调度),用以替代linux中的crontab。一、Azkaban是什么?1.1 Azkaban是什么?Azkaban是一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver。Azkaban是linkin...
原创
发布博客 2019.04.11 ·
2960 阅读 ·
4 点赞 ·
0 评论 ·
9 收藏

java 1.8 HashMap的实现原理

java 1.8 HashMap的实现原理1. hash 表数组:采用一段连续的存储单元来存储数据。对于指定下标的查找,时间复杂度为O(1);通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有序数组,则可采用二分查找,插值查找查找等方式,可将查找复杂度提高为O(logn);对于一般的插入删除操作,涉及到数组元素的移动,其平均复杂度也为O(n)...
原创
发布博客 2019.03.12 ·
1105 阅读 ·
2 点赞 ·
0 评论 ·
7 收藏

无法导入 import spark.implicits._ 报错

无法导入 import spark.implicits._ 报错##import spark.implicits._ 中的spark 指的是SQLContext或者SparkSessioneg1:def main(args: Array[String]): Unit = { val spark = SparkSession.builder() ...
原创
发布博客 2019.03.07 ·
4614 阅读 ·
3 点赞 ·
1 评论 ·
3 收藏

快速排序

快速排序1. 快速排序思想int [] arr = {8,2,9,10,1,5,14,9};left = 0right = arr.length -1首先在这个序列中随便找一个数作为基准数,为了方便,就让第一个数8作为基准数.base = arr[left]两端开始“探测”right先从右往左找一个小于base的数,==》从右往左找一个小于base的数:停止在5的位置再left从...
原创
发布博客 2019.02.18 ·
170 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

选择排序

选择排序1. 选择排序的思想每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。就如斗地主发牌后,将最大的牌或者最小的牌放到左边或者右边。2. 编码 package com.zhmcode.selectionsort; /** * Created by zhmcode on 2019/2/16 0016. */ public class ...
原创
发布博客 2019.02.16 ·
205 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

冒泡排序

冒泡排序1.冒泡排序思想让数组当中相邻的两个数进行比较,数组当中比较小的数值向下沉,数值比较大的向上浮!外层for循环控制循环次数,内层for循环控制相邻的两个元素进行比较。2. 编码package com.zhmcode.bubblesort;/** * Created by zhmcode on 2019/2/15 0015. */public class MyBubbleS...
原创
发布博客 2019.02.15 ·
54740 阅读 ·
12 点赞 ·
17 评论 ·
19 收藏

二分查找

二分查找1. 二分查找的条件必须是有序数组2. 二分查找的思想我们先将被查找的数和数组的中间键对应的value比较,因为数组是有序的,所有若被查找的数小于数组的中间键对应的value则这个数则在数组的左部分,然后将中间键的左边数组当作一个数组来进行二分查找。反之,则在数组的右部分,若相等,则查找成功。3. 两种实现方式package com.zhmcode.binarysearch;...
原创
发布博客 2019.02.15 ·
4220 阅读 ·
2 点赞 ·
1 评论 ·
3 收藏

Spark自定义AccumulatorV2

Spark自定义AccumulatorV21.概述###AccumulatorV2的简单使用与注意事项见上一遍博客https://blog.csdn.net/wtzhm/article/details/86481846在实际开发中很多时候需要用到自定义Acummulator,Accumulator太多了,不便于维护,例如项目如果要出现一些逻辑上的变更,比如说,session数量的计算逻辑,...
原创
发布博客 2019.01.20 ·
974 阅读 ·
3 点赞 ·
0 评论 ·
1 收藏

Spark 的 Accumulator与 AccumulatorV2

Spark 的 Accumulator1.概述Accumulator累加器能精确地统计数据的各种属性,eg:可以统计符合条件的session,在一段时间段内产生了多少次购买,统计出各种属性的数据。2. 例子def main(args: Array[String]): Unit = { val conf = new SparkConf().setMaster("local[2]")....
原创
发布博客 2019.01.14 ·
2592 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

Spark 高性能算子

Spark 高性能算子1. map 与 mapPartitions1.优缺点mapPartition的优点:普通的map执行一个partition中有1.2万条数据。ok,那么function要执行和计算1.2万次。如果使用MapPartitions操作之后,一个task仅仅会执行一次function,function一次接收所有的partition数据。只要执行一次就可以了,性能比较高...
原创
发布博客 2019.01.11 ·
1417 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

回归spark30多个算子

回归spark30多个算子1. spark算子分类Transformation 变换/转换算子Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。Action 行动算子Action 算子会触发 Spark 提交作业(Job),并将数据输出 Spark系统。...
原创
发布博客 2019.01.11 ·
279 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

iterator与iterable接口之间的区别

iterator与iterable接口之间的区别1.区别Iterator是迭代器类,而Iterable是为了只要实现该接口就可以使用foreach,进行迭代.Iterable中封装了Iterator接口,只要实现了Iterable接口的类,就可以使用Iterator迭代器了。集合Collection、List、Set都是Iterable的实现类,所以他们及其他们的子类都可以使用fo...
原创
发布博客 2019.01.08 ·
598 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

log4j+flume+kafka模拟Spark Streaming流式处理数据

log4j+flume+kafka模拟Spark Streaming流式处理数据1. java 编程模拟日志产生/** * 模拟Logger 产生日志 */public class LoggerGenerator { private static Logger logger = Logger.getLogger(LoggerGenerator.class.getName());...
原创
发布博客 2018.12.19 ·
351 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

log4j+flume+kafka模拟Spark Streaming流式处理数据

log4j+flume+kafka模拟Spark Streaming流式处理数据1. java 编程模拟日志产生/** * 模拟Logger 产生日志 */public class LoggerGenerator { private static Logger logger = Logger.getLogger(LoggerGenerator.class.getName());...
原创
发布博客 2018.12.19 ·
351 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SparkStreaming 集成Kafka详解

SparkStreaming 集成Kafka详解1.概述SparkStream集成Kafa有两种方式,Receiver-based Approach与Direct Approach,在集成的时候得注意spark版本与kafka的版本是否兼容。2.Receiver-based Approach1)概述此种方式使用的是recevier 接收数据,recevier使用的是the Kafka h...
原创
发布博客 2018.12.18 ·
462 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

SparkStreaming 集成Flume详解

SparkStreaming 集成Flume详解1.Flume-style Push-based Approach1).push方式:flume agent的sink需要使用avro,spark application是一个receiver,接受flume push过来的数据。2).由于是使用的push方式,要先运行spark application,然后才能启动flume3).flume...
原创
发布博客 2018.12.14 ·
394 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

spark-streaming-flume-sink_2.11_2.1.1.jar

发布资源 2018.12.12 ·
jar
加载更多