• 大数据HIve


    1. 题目说明

    设计题:MySQL数据库A有1000w条数据,完成统计再输入到另外的B表中

    A表

    test1 0.2,3.5,1,1
    test1 1.2,2.3,4.56
    test2 2.1,0.3,9.2,3.5,2.4
    test3 2.1,4.5,3.4,7.65
    test4 1.2,3.4,54,32.1,12.3
    test5 12.1,12.3
    test5 12.34
    test5 0.01,0.02
    test6 2.3,45.3,23.21
    test6 23.4,23,22.12
     B表

    test1 0.2 4.56
    test2 0.3 9.2
    test3 2.1 7.65
    test4 1.2 54.0
    test5 0.01 12.34
    test6 2.3 45.3
    2. 实现过程

    不使用常规方式实现,这里讨论使用大数据分析工具完成。

    (1)首先需要使用Sqoop将数据到HDFS上,分隔符为制表符

    (2)常见Hive表

    hive (default)> create table mydb(name string,num array<double>)
    > row format delimited fields terminated by ' '
    > collection items terminated by ',';
    (3)导入数据(这里使用本地测试文件)

    hive (default)> load data local inpath '/home/fanl/data/mydb' into table mydb;
    (3)查询表信息

    (4)因为Hive的数组类型字段,可以用sort_array对每一行数据进行排序

    hive (default)> select name,sort_array(num) from mydb;


    这里每一行的最大值和最小值已经看到了,最小值为num[0],最小值为num[长度-1],数组字段的长度函数是size(num)

    (5)综合起来,并且按name分组

    hive (default)> select s.name,min(s.min) as min,max(s.max) as max
    > from(select t.name,t.num[0] as min,t.num[size(num)-1] as max
    > from (select name,sort_array(num) as num from mydb) t)s
    > group by s.name;

    ---------------------
    作者:樊领
    来源:CSDN
    原文:https://blog.csdn.net/qq_15973399/article/details/89963854
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    JQuery
    如何垂直居中一个浮动元素
    Bootstrap概述
    浮动元素的水平居中
    图(Prime算法、 Kruskal算法、Dijkstra算法、Floyd算法、AOV网)
    排序(插入排序、选择排序、交换排序、二路归并排序、基数排序、外部排序)
    实验二 Scala编程初级实践
    数据类型、运算符
    用栈求前缀表达式值
    用栈求后缀表达式地的值
  • 原文地址:https://www.cnblogs.com/handsome-24/p/11202219.html
Copyright © 2020-2023  润新知