Load data into Hive with custom delimiter

后端 未结 3 853
忘掉有多难
忘掉有多难 2020-12-07 05:48

I\'m trying to create an internal (managed) table in hive that can store my incremental log data. The table goes like this:

CREATE TABLE logs (foo INT, bar S         


        
3条回答
  •  暖寄归人
    2020-12-07 06:00

    By default, hive only allows user to use single character as field delimiter. Although there's RegexSerDe to specify multiple-character delimiter, it can be daunting to use, especially for amateurs.

    The patch (HIVE-5871) adds a new SerDe named MultiDelimitSerDe. With MultiDelimitSerDe, users can specify a multiple-character field delimiter when creating tables, in a way most similar to typical table creations.

    hive> CREATE TABLE logs (foo INT, bar STRING, created_date TIMESTAMP)
        > ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' 
        > WITH SERDEPROPERTIES ("field.delim"="<=>")
        > STORED AS TEXTFILE;
    
    hive> dfs -put /home/user1/multi_char.txt /user/hive/warehouse/logs/. ;
    
    hive> select * from logs;
    OK
    120 abcdefg 2016-01-01 12:14:11
    Time taken: 1.657 seconds, Fetched: 1 row(s)
    hive> 
    

提交回复
热议问题