参考链接:
http://my.oschina.net/weiqingbin/blog/194411
创建hive 表时对avro使用snappy压缩:
-
hive> set hive.exec.compress.output=true;
-
hive> set avro.output.codec=snappy;
创建hive表的语句:
-
CREATE EXTERNAL TABLE ecc_wj_2
-
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
-
STORED AS
-
INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
-
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
-
LOCATION '/lcz/data' --hdfs 路径
-
TBLPROPERTIES (
-
'avro.schema.url'='hdfs:///lcz/device20102.avsc' --hdfs 路径
-
);
avro schema文件:
-
{
-
"namespace": "com.sany.ecc.model.huaxing",
-
"type": "record",
-
"name": "Device2010",
-
"fields": [
-
{
-
"name": "ST_PID",
-
"type": [
-
"string",
-
"null"
-
]
-
},
-
{
-
"name": "ST_LOGINID",
-
"type": [
-
"string",
-
"null"
-
]
-
},
-
{
-
"name": "RE_EN_PID",
-
"type": [
-
"string",
-
"null"
-
]
-
},
-
{
-
"name": "ST_LOGINTIME",
-
"type": [
-
"long",
-
"null"
-
]
-
},
-
{
-
"name": "ST_CONNECTTIME",
-
"type": [
-
"long",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UPDATETIME",
-
"type": [
-
"long",
-
"null"
-
]
-
},
-
{
-
"name": "ST_TOTALWKTIME",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_WKTIME",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_RMNTIME",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_BERRORCODE",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_WERRORCODE",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_BALMCODE",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_WALMCODE",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_GPSSTA",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_LONGITUDE",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_LATITUDE",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_ALTITUDE",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_VELOCITY",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_ORIENTATION",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_SATICUNT",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_SGNLQ",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_STEPPOS",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_ENGV",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_OILLEV",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_BATTERYVOL",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_ERRDEALSTA",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_CMMCTSCH",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV10",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV11",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV12",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV13",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV14",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV15",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV16",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV17",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV18",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV19",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV20",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV21",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV22",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV23",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV24",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV25",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV26",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV27",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV28",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV29",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV30",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV31",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_UINTRESERV32",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV13",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
-
{
-
"name": "ST_FLOATRESERV14",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
-
{
-
"name": "ST_FLOATRESERV15",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
-
{
-
"name": "ST_FLOATRESERV16",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
-
{
-
"name": "ST_FLOATRESERV17",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
-
{
-
"name": "ST_FLOATRESERV18",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV19",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV20",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV21",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV22",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV23",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV24",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV25",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV26",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV27",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV28",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV29",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV30",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV31",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_FLOATRESERV32",
-
"type": [
-
"double",
-
"null"
-
]
-
},
-
{
-
"name": "ST_CHECKMARK",
-
"type": [
-
"string",
-
"null"
-
]
-
},
-
{
-
"name": "ST_STATE",
-
"type": [
-
"int",
-
"null"
-
]
-
},
-
{
-
"name": "ST_MA_SERIALNO",
-
"type": [
-
"null",
-
"string"
-
],
-
"default": null
-
},
-
{
-
"name": "ST_FLOATRESERV33",
-
"type": [
-
"null",
-
"double"
-
],
-
"default": null
-
},
-
{
-
"name": "ST_FLOATRESERV34",
-
"type": [
-
"null",
-
"double"
-
],
-
"default": null
-
}
-
]
-
}
注意:在schema文件中,如果当数据文件中某个字段没有值,如果schema中没有出现允许该字段为null,会抛出错误。 一定要定义type,允许为空,且要加上默认值null
顺序不能变,否则也创建不成功:
正确顺序如:
{
"name": "ST_FLOATRESERV34",
"type": [
"null",
"double"
],
"default": null
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31347383/viewspace-2123733/
,如需转载,请注明出处,否则将追究法律责任。