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

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: