将数据加载到Hive中的分区

时间:2015-01-09 06:05:50

标签: hive

请帮助我澄清我的疑问。我不确定分区HIVE的目的。这是我想要做的。下面是我的数据文件:

文件: 基肖尔,31 拉梅什,32 基肖尔,33 拉梅什,34

我创建了一个分区托管表EMP,如下所示:

create table EMP(name string,age int) 分区为(国家字符串,州字符串) 行格式分隔的字段由',';

终止

现在我正在加载数据,如下所示: 加载数据本地inpath' /../../ file'进入表EMP分区(country =' US',state =' Oklahoma');

所以现在我的数据表应该是这样的:kishore,31,US,Oklahoma ramesh,32,US,Oklahoma kishore,33,US,Oklahoma ramesh,34,US,Oklahoma。

我的QUSETION分区在这里有用吗?即使它是一个非分区的表,也有国家和州列,如果我会给出select * form EMP(对于非分区表)或者从EMP中选择*,其中country = US和state = Oklahoma(对于分区表) ),我得到相同的结果,它的一个或相同的东西。性能如何提高?

谢谢!

2 个答案:

答案 0 :(得分:0)

检查此链接以更好地了解Hive中的分区,

http://www.brentozar.com/archive/2013/03/introduction-to-hive-partitioning/

Crux是,

  1. 优化大数据存储(您必须指定分区 键)
  2. 以上是基于查询模式指定的
  3. 静态和动态分区选项
  4. 进一步阅读 - > https://www.safaribooksonline.com/library/view/programming-hive/9781449326944/

答案 1 :(得分:0)

您可以在where子句中使用分区作为常规列。在打印select语句的输出时,Hive将其视为分区列(此处列顺序很重要)。但是,Hiveserver知道哪个列是分区,哪个列不是,并使用这些知识将查询转换为mapreduce作业。

相关问题