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
好文阅读
发表评论