0


hive表的输入输出格式总结

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

标签: hive hadoop 大数据

本文转载自: https://blog.csdn.net/etastgrehyjrt/article/details/127838843
版权归原作者 etastgrehyjrt 所有, 如有侵权,请联系我们删除。

“hive表的输入输出格式总结”的评论:

还没有评论