Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive 将数据加载到配置单元中的分区中_Hive - Fatal编程技术网

Hive 将数据加载到配置单元中的分区中

Hive 将数据加载到配置单元中的分区中,hive,Hive,请帮我澄清我的疑问。我不确定在HIVE中分区的目的。以下是我正在尝试做的。以下是我的数据文件: 文件: 基肖尔,31岁 拉梅什,32岁 基肖尔,33岁 拉梅什,34岁 我创建了一个分区托管表EMP,如下所示: 创建表EMP(名称字符串,年龄整数) 分区依据(国家/地区字符串、状态字符串) 行格式分隔字段,以“,”结尾 现在我正在加载数据,如下所示: 将数据本地inpath'/../../file'加载到表EMP分区中(国家='US',州='Oklahoma') 现在我的数据表应该是这样的:基肖尔

请帮我澄清我的疑问。我不确定在HIVE中分区的目的。以下是我正在尝试做的。以下是我的数据文件:

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

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

创建表EMP(名称字符串,年龄整数) 分区依据(国家/地区字符串、状态字符串) 行格式分隔字段,以“,”结尾

现在我正在加载数据,如下所示: 将数据本地inpath'/../../file'加载到表EMP分区中(国家='US',州='Oklahoma')

现在我的数据表应该是这样的:基肖尔,31,美国,俄克拉荷马州拉梅什,32,美国,俄克拉荷马州基肖尔,33,美国,俄克拉荷马州拉梅什,34,美国,俄克拉荷马州

我的问题是分区在这里有什么用处?即使它是一个包含国家和州列的非分区表,并且如果我给出select*form EMP(对于非分区表)或select*from EMP,其中国家=US,州=Oklahoma(对于分区表),我也会得到相同的结果,这是一样的。如何提高性能


谢谢

查看此链接以更好地了解配置单元中的分区

关键是,

  • 优化大数据存储(必须指定分区 钥匙)
  • 以上是根据查询模式指定的
  • 静态和动态分区选项

  • 进一步阅读-->

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