1
我想創建一個外部HIVE表,該表利用HDFS中已有的數據。這些文件位於/hdfs/data/location
和year-month
格式的子目錄中。例如:/hdfs/data/location/2013-december
和/hdfs/data/location/2014-january
。從不同記錄格式的文件創建外部HIVE表
這些目錄內有多個文件,但文件內是不同類型的數據(不同的字段)。不同類型的記錄的實例是:
A型
type
state
city
population
類型B
type
zipcode
registeredvoters
實際數據的例子(製表符分隔)
type:A state:New York city:New York population:8336697
type:A state:California city:Los Angeles population:3857799
type:B zipcode:92118 registeredvoters:794051
type:B zipcode:92155 registeredvoters:794053
type:A state:Illinois city:Chicago population:2714856
的數據是已經在這種格式並被HIVE以外的其他進程使用,所以改變它可能不是一種選擇。我也不想在HDFS中複製數據。
有沒有一種方法可以爲上述數據中定義的給定類型創建一個HIVE表?
這裏是我迄今爲止的創造:
create external table population (
type string,
state string,
city string,
population int
)
location '/hdfs/data/location';
我還需要where type ='A',因爲type ='B'沒有這些列嗎? –
您可以添加其他類型的其他列(即pmap ['zipcode'],pmap ['population']),如果該值不在地圖中,它應該返回null。 或者您可以添加「pmap ['type'] ='A'」 –