zoukankan      html  css  js  c++  java
  • Hive不同文件的读取与序列化

    Hive不同文件的读取对比

    stored as textfile

    直接查看hdfs 
    hadoop fs -text

    hive> create table test_txt(name string,val string) stored as textfile;

    stored as sequencefile

    hadoop fs -text

    hive> create table test_seq(name string,val string) stored as sequencefile;

    stored as rcfile

    hive –service rcfilecat path

    hive> create table test_rc(name string,val string) stored as rcfile;

    stored as inputformat ‘class’自定义

    outformat ‘class’ 
    基本步骤: 
    1、编写自定义类 
    2、打成jar包 
    3、添加jar文件,hive> add jar /***/***/***.jar(当前生效)或者拷贝到hive安装目录的lib目录下,重启客户端(永久生效)。 
    4、创建表,指定自定义的类

    Hive使用SerDe

    SerDe是”Serializer”和”Deserializer”的简写。 
    Hive使用SerDe(和FileFormat)来读、写表的行。 
    读写数据的顺序如下:

    HDFS文件-->InputFileFormat--><key,value>-->Deserializer-->Row对象 Row对象-->Serializer--><key,value>-->OutputFileFormat-->HDFS文件

    Hive自带的序列化与反序列化 

    当然我们也可以自己实现自定义的序列化与反序列化 
    Hive自定义序列化与反序列化步骤 
    1、实现接口SerDe或者继承AbstractSerDe抽象类 
    2、重写里面的方法

    Demo:

    创建表

    drop table apachelog; create table apachelog( host string, identity string, user string, time string, request string, status string, size string, referer string, agent string ) row format serde 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' with serdeproperties( "input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([0-9]*) ([0-9]*) ([^ ]*) ([^ ]*)" )stored as textfile;

    cat serdedata 110.52.250.126 test user - GET 200 1292 refer agent 27.19.74.143 test root - GET 200 680 refer agent

    加载数据

    load data local inpath '/liguodong/hivedata/serdedata' overwrite into table apachelog;

    查看内容

    select * from apachelog; select host from apachelog;

  • 相关阅读:
    Linux系统中压缩与解压缩
    Linux系统中的信息查找命令
    Paraview处理fluent计算结果
    insert_stream 中的 insert_every报错
    LIGGGHTS出现错误提示ERROR: Volume expectancy too small
    影响CFD计算量的因素分析及在OpenFOAM中的参数调整
    常见物理量的单位在OpenFOAM中的形式
    LIGGGHTS运行命令
    汇编系列10-内存
    汇编系列9-通用寄存器
  • 原文地址:https://www.cnblogs.com/ablansetaimeng/p/4651480.html
Copyright © 2011-2022 走看看