CoderLin很忙的博客

我要一步一步往上爬

Hive开窗函数和Rank函数

开窗函数 over():跟在聚合函数后面,指定分析函数工作的数据窗口大小,决定了数据的聚合范围,默认范围是整个数据窗口,即所有行。可使用partition by将数据进行分组聚合;使用order by除了排序,还会改变聚合范围(从开始行到当前行的聚合)。 如下的窗口字句,能对聚合数据进一步的划分 ...

2019-03-04 16:42:07

阅读数 16

评论数 0

Hive查询函数的总结和案例(一)

NVL空字段赋值 NVL(value, default_value):如果value为NULL,则NVL函数返回default_value(可以为常量,也可以为某个字段)的值,否则返回value的值,如果两个参数都为NULL,则返回NULL。此函数很简单,此处不写例子。 CASE WHEN和IF ...

2019-03-02 16:35:44

阅读数 16

评论数 0

Hive的架构和原理

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL(HQL)查询功能。Hive是将HQL转化为MapReduce程序,Hive处理的数据存储在HDFS上,执行程序运行在Yarn上。由于执行的是MapReduce程序,延迟比较高,因此Hive常用于离线的...

2019-02-27 12:03:16

阅读数 1240

评论数 0

理解Spark中的RDD、DataFrame和DataSet

RDD RDD(Resilient Distributed Datasets)叫做弹性分布式数据集,是Spark中最基本的数据抽象,源码中是一个抽象类,代表一个不可变、可分区、里面的元素可并行计算的集合。编译时类型安全,但是无论是集群间的通信,还是IO操作都需要对对象的结构和数据进行序列化和反序列...

2019-02-21 21:13:23

阅读数 22

评论数 0

Spark实现wordcount

object WordCount{ def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("wordcount"...

2019-02-17 23:26:23

阅读数 17

评论数 0

Spark的四种部署方式概括

1.Local模式 Local模式就是运行在一台计算机上的模式,通常用于在本机上测试,当不设置master参数的值时,默认此模式,具体有以下几种设置master的方式。 local:所有计算都运行在一个线程当中,没有任何并行计算。 local[n]:指定使用n个线程来运行计算。 local[*...

2019-02-17 22:42:21

阅读数 18

评论数 0

Hadoop优化策略

Hadoop优化策略 数据输入小文件处理: (1)合并小文件:对小文件进行归档(har)、自定义inputFormat将小文件存储成sequenceFile文件。 (2)采用CombineFileInputFormat来作为输入,解决输入端大量小文件场景。 (3)对于大量小文件Job,可以开启J...

2019-02-15 21:14:40

阅读数 16

评论数 0

HDFS组成架构与读写数据流程

HDFS组成架构 HDFS采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。 Client:客户端。 (1)文件切分:文件上传HDFS时,Client将文件切分成一个...

2019-02-15 19:39:28

阅读数 18

评论数 0

SSM整合总结

SSM框架集由Spring、SpringMVC、MyBatis整合而成。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架;SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制;MyBatis是一个支持SQL查询,存储过程和高...

2018-11-01 15:07:55

阅读数 170

评论数 0

构造二叉查找树(Java实现)

一颗二叉查找树(BST)是一颗二叉树,每个结点的键都大于其左子树中的任意结点而小于右子树的任意结点,在Java实现中每个结点都含有一个Comparable的键(以及相关联的值)。 二叉查找树类似于快速排序,跟结点就是快速排序的第一个切分元素,左侧的键都比它小,右侧的键都比它大,对于所有子树同样适用...

2018-09-18 21:02:01

阅读数 171

评论数 0

无序链表实现顺序查找(Java实现)

链表中的每个结点存储一个键值对,get()的实现即为遍历链表,equals()方法比较需要被查找的键和每个结点中的键,如果匹配成功就返回相应的值,否则返回null。put()的实现也是遍历链表,用equals()方法比较需要被查找的键和每个结点中的值,如果匹配成功就用第二个参数指定的值更新和该键相...

2018-09-18 20:44:13

阅读数 53

评论数 0

基于堆的优先队列(Java实现)

优先队列的最重要的操作:删除最大元素(或最小)和插入元素。数据结构二叉堆能够很好的实现队列的基本操作。 二叉堆的结点按照层级顺序放入数组,用长度为N+1的私有数组pq来表示一个大小为N的堆(堆元素放在pq[1]至pq[N]之间,为方便计数,未使用pq[0]),跟节点在位置1,它的子结点在位置2和3...

2018-09-18 20:13:19

阅读数 301

评论数 0

堆排序(Java实现)

堆排序指利用堆这种数据结构的一种排序算法,是选择排序的一种。 如果是非降序排序,需要使用大根堆(是完全二叉树),即每个节点的值都不大于父节点的值。将二叉树的节点按照层级顺序放入数组,用长度为N+1的私有pq[]来表示一个大小为N的堆(为后面计数方便,不使用pq[0],堆元素放在pq[1]至pq[N...

2018-09-18 19:37:57

阅读数 127

评论数 0

二分查找(Java实现)

二分查找又称为折半查找,要求线性表必须采用顺序存储结构,并且元素按关键字有序排列。 查找过程:假设数组中元素按升序排列,将数组中间位置的值与待查值比较,如果相等则查找成功;否则利用中间位置下标将数组分成前后两个子数组,如果中间位置的值大于待查值则到前一子数组中查找,如果中间位置的值小于待查值则到后...

2018-09-17 20:34:04

阅读数 30

评论数 0

归并排序(Java实现)

归并排序先递归地将数组分成两半分别排序,然后将结果归并起来,遵循分冶模式: 分解:分解待排序的n个元素的序列成各具n/2个元素的两个子序列。 解决:使用归并排序递归地排列两个子序列。 合并:合并两个已排序的子序列(归并排序的关键步骤)。 时间复杂度为O(NlogN),空间复杂度O(N),稳定的排...

2018-09-17 19:28:33

阅读数 50

评论数 0

希尔排序(Java实现)

希尔排序是对插入排序的改进,交换的是不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序。希尔排序先使数组中任意间隔为h的元素都是有序的,这样的数组被称为h有序数组(一个h有序数组即一个由h个有序子数组组成的数组),在进行排序时,如果h很大,就能将元素移动到很远的地方,为实现更...

2018-09-17 19:04:57

阅读数 252

评论数 0

快速排序(Java实现)及其改进(三向切分的快速排序)

快速排序思想:通过一趟排序将数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行。 一趟快速排序的步骤: 设置两个变量:i = 0,j = N - 1; 以第一个数组元素作为关键数据,赋值给key,即k...

2018-09-16 23:57:02

阅读数 57

评论数 0

冒泡排序(Java实现及其改进)

依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。如升序:如果第一个比第二个大就交换,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对)。 时间复杂度O(N^2),稳定排序算法。 public static void bubbleSort(int[] a){ ...

2018-09-14 21:02:06

阅读数 70

评论数 0

插入排序(Java实现)

将待排序中的一个数插入到已排好序的数据中的适当位置上,从而得到一个新的有序数据。 时间复杂度O(N^2),稳定的排序算法。 当数组元素部分有序时,效率变高。 public static void insertionSort(int[] a){ int N = a....

2018-09-14 19:54:22

阅读数 28

评论数 0

链表实现堆栈和队列

链表实现堆栈:栈的顶部即为链表头,实例变量first指向栈顶,当使用push()压入一个元素时会将该元素添加到表头,当使用pop()删除一个元素时会将该元素从表头删除,操作时间与元素个数无关。 Java代码如下: public class Stack<T&am...

2018-09-06 00:28:51

阅读数 289

评论数 0

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