zoukankan      html  css  js  c++  java
  • 大数据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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    06.04 html
    汉企第一天
    Django之ajax
    Diango之图书管理系统编辑
    Django之模型层&ORM操作
    Django 之模板层
    Django之 路由层
    Django之ORM简单操作(一)
    迭代器、可迭代对象、迭代器对象、生成器、生成器对象、枚举对象
    装饰器
  • 原文地址:https://www.cnblogs.com/handsome-24/p/11202219.html
Copyright © 2011-2022 走看看