Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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
Hadoop 如何使Hive了解现有分区数据的路径?_Hadoop_Hive - Fatal编程技术网

Hadoop 如何使Hive了解现有分区数据的路径?

Hadoop 如何使Hive了解现有分区数据的路径?,hadoop,hive,Hadoop,Hive,我在S3上有一个分区格式的现有数据,可以很好地与Hive配合使用,但是路径看起来与Hive期望的不完全一样。有没有办法让Hive知道我的非标准分区路径 我的路径如下所示: s3://some-bucket/pageviews/20120311/ACME1234/example.com/data-file-1 我能不能告诉Hive把这个解释为 s3://some-bucket/pageviews/dt=20120311/key=ACME1234/site=example.com/data-fil

我在S3上有一个分区格式的现有数据,可以很好地与Hive配合使用,但是路径看起来与Hive期望的不完全一样。有没有办法让Hive知道我的非标准分区路径

我的路径如下所示:

s3://some-bucket/pageviews/20120311/ACME1234/example.com/data-file-1
我能不能告诉Hive把这个解释为

s3://some-bucket/pageviews/dt=20120311/key=ACME1234/site=example.com/data-file-1

现有的路径就是它们,不能改变它们以满足Hive的期望。我还知道,我可以使用
ALTER TABLE pageviews add PARTITION(…)LOCATION…
手动添加所有分区,但这将很快变得单调乏味,即使我编写了脚本。

Hive在其内部元存储(通常是MySQL数据库)中存储有关分区的信息,因此,无论如何,您都必须通过这个元存储提供这些信息。我认为使用
altertable…
可能很好,另一个选择是使用Pig以适合Hive的格式重写数据。重写数据不是一个选项,我认为在S3上移动所有内容,或者将其全部复制到HDFS,只是为了让Hive摸索结构,这将是一种非常沉重的方式。我将研究如何操作metastore,看看这是否比编写分区脚本添加命令更容易。