将本地csv文件直接加载到hive镶木桌中,而不是求助于临时文本文件表

时间:2016-10-31 06:10:38

标签: hive local parquet

我现在准备将.csv文件中的数据存储到配置单元中。当然,由于镶木地板文件格式的良好性能,蜂巢表应该是镶木地板格式。因此,通常的方法是创建一个格式为textfile的临时表,然后将本地CSV文件数据加载到此临时表中,最后创建一个相同结构的镶木桌并使用sql {{1} }。

但我不认为这个临时文本文件表是必要的。所以,我的问题是,有没有办法让我直接将这些本地.csv文件加载到hive镶木地板格式表中,即不使用临时表?或者更简单的方法来完成这项任务?

1 个答案:

答案 0 :(得分:3)

Hive documentation中所述:

  

load命令不执行针对模式的数据验证。

     

如果文件位于hdfs中,则会将其移动到Hive控制的文件系统命名空间中。

您可以使用CREATE TABLE AS SELECT跳过镶木桌。

所以你将有3个步骤:

  1. 创建定义架构的文本表
  2. 将数据加载到文本表中(将文件移动到新表中)
  3. CREATE TABLE parquet_table AS SELECT * FROM textfile_table STORED AS PARQUET; supported from hive 0.13