我有一个典型的CREATE TABLE
陈述如下:
CREATE EXTERNAL TABLE temp_url (
MSISDN STRING,
TIMESTAMP STRING,
URL STRING,
TIER1 STRING
)
row format delimited fields terminated by '\t' lines terminated by '\n'
LOCATION 's3://mybucket/input/project_blah/20140811/';
其中 /20140811/ 是一个目录,里面有千兆字节的数据。
加载东西不是问题。然而,查询它上面的任何东西都会让 Hive 窒息,并且只会给我一些MapRed
错误。
所以相反,我想问一下是否有办法只加载/20140811/中的部分数据。我知道我可以从文件夹中选择一些文件,将它们转储到另一个文件夹中,然后使用它,但这似乎很乏味,尤其是当我有 20 个左右的 /20140811/ 目录时。
有没有这样的东西:
CREATE EXTERNAL TABLE temp_url (
MSISDN STRING,
TIMESTAMP STRING,
URL STRING,
TIER1 STRING
)
row format delimited fields terminated by '\t' lines terminated by '\n'
LOCATION 's3://mybucket/input/project_blah/Half_of_20140811/';
我也对非蜂巢式答案持开放态度。也许有一种方法s3cmd
可以快速获取 /20140811/ 中的一定数量的数据,将其转储到 /20140811_halved/ 或其他东西中。
谢谢。