Hive Serde 序列化与反序列化

本文介绍了Hive中用于不同数据格式处理的SerDe,包括使用RegexSerDe处理日志数据,JsonSerDe处理JSON结构,以及OpenCSVSerde处理CSV/TSV格式。示例展示了创建表的语法,以及如何配置各SerDe的属性以适应不同数据格式。
摘要由CSDN通过智能技术生成

Hive Serde 序列化与反序列化

hive Serde官方文档

RegEx 基于正则的匹配

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.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
  "input.regex" = "([^]*) ([^]*) ([^]*) (-|\\[^\\]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\".*\") ([^ \"]*|\".*\"))?"
)
STORED AS TEXTFILE;

JSON数据结构

In some distributions, a reference to hive-hcatalog-core.jar is required.
ADD JAR /usr/lib/hive-hcatalog/lib/hive-hcatalog-core.jar;

从Hive 0.12版本开始
CREATE TABLE my_table(a string, b int)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
STORED AS TEXTFILE;

Hive 3.0.0新的JsonSerDe,原来的JsonSerDe也可以用
CREATE TABLE my_table(a string, b int)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
STORED AS TEXTFILE;

Hive 4.0.0才支持JSONFILE
STORED AS JSONFILE

CSV/TSV格式

-- 所有的字段必须是string类型
CREATE TABLE my_table(a string, b string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = "\t",
   "quoteChar"     = "'",
   "escapeChar"    = "\\"
)  
STORED AS TEXTFILE;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值