请帮助我澄清我的疑问。我不确定分区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(对于分区表) ),我得到相同的结果,它的一个或相同的东西。性能如何提高?
谢谢!
答案 0 :(得分:0)
检查此链接以更好地了解Hive中的分区,
http://www.brentozar.com/archive/2013/03/introduction-to-hive-partitioning/
Crux是,
进一步阅读 - > https://www.safaribooksonline.com/library/view/programming-hive/9781449326944/
答案 1 :(得分:0)
您可以在where子句中使用分区作为常规列。在打印select语句的输出时,Hive将其视为分区列(此处列顺序很重要)。但是,Hiveserver知道哪个列是分区,哪个列不是,并使用这些知识将查询转换为mapreduce作业。