hive建表语句:
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], …)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], …)]
[CLUSTERED BY (col_name, col_name, …)
[SORTED BY (col_name [ASC|DESC], …)] INTO num_buckets BUCKETS]
[ROW FORMAT row_format]
[STORED AS file_format]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, …)]
[AS select_statement]
[LIKES existing_table_or_view_name]
hive表的输入输出格式总结
在建表时,会设置表的inputformat,这个信息会给select语句解析使用!
select语句解析的job,会指定的Inputformat读取表中的数据!
在建表时,会设置表的outputformat,这个信息会给insert语句解析使用!
insert语句解析的job,会使用表指定的Outputformat将要写入的数据存储为指定的文件格式!
在建表时,当指定文件格式时,hive会自动根据文件格式帮你设置InputFormat和OutPutFormat。
在建表时,输出格式需要设置为表中文件格式所对应的类型!
textfile ------------TextOupputFormat
parquet ---------> ParquetOutputFormat
Hive支持的常见的文件格式:
TEXTFILE(默认):
INPUTFORMAT:
org.apache.hadoop.mapred.TextInputFormat
可切。 默认以blocksize为每片最大值。
textfile文件lzo压缩:
com.hadoop.mapred.DeprecatedLzoTextInputFormat:
可切。 取决于index文件中的设置。没有index文件,不能切,将整个文件作为1片!
OUTPUTFORMAT: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
SequenceFile(过时):
ORCFILE:
INPUTFORMAT:
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat
可切。一个stripe是一片!
OUTPUTFORMAT:
org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat
Parquet:
INPUTFORMAT: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
可切。一个数据页是1片! 256M
OUTPUTFORMAT: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
版权归原作者 etastgrehyjrt 所有, 如有侵权,请联系我们删除。