Hive-根据hdfs中三个csv文件的特定数据创建hive表

问题描述 投票:0回答:1

我有三个.csv文件,每个文件位于不同的hdfs目录中。我现在想用这三个文件中的数据制作一个Hive内部表。我想要第一个文件中的四列,第二个文件中的三列,第三个文件中的两列。第一个文件与第二个文件共享唯一的ID列,第三个文件与第三个文件共享另一个唯一的ID列。两个唯一的ID都存在于第二个文件中;使用这些ID,我想从左到外加入表格。

文件1:'/directory_1/sub_directory_1/table1_data_on_01_01_2014.csv'文件2:“ / directory_2 / sub_directory_2 / table2_data_on_01_01_2014.csv”文件3:“ / directory_3 / sub_directory_3 / table3_data_on_01_01_2014.csv'

文件1的内容:

unique_id_1,age,department,reason_of_visit,--more columns--,,,
id_11,entry_12,entry_13,entry_14,--more entries--
id_12,entry_22,entry_23,entry_24,--more entries--
id_13,entry_32,entry_33,entry_34,--more entries--

文件2的内容:

unique_id_1,date_of_transaction,transaction_fee,unique_id_2--more columns--,,,
id_11,entry_121,entry_131,id_21,--more entries--
id_12,entry_221,entry_231,id_22,--more entries--
id_13,entry_321,entry_331,id_23,--more entries--

文件3的内容:

unique_id_2,diagnosis,gender --more columns--,,,
id_21,entry_141,entry_151,--more entries--
id_22,entry_241,entry_151,--more entries--
id_23,entry_341,entry_151,--more entries--

我现在想制作这样的内部表:

unique_id_1 age department reason_of_visit date_of_transaction unique_id_2 transaction_fee diagnosis gender
id_11 entry_12 entry_13 entry_14 entry_121 entry_131 id_21 entry_141 entry_151
id_12 entry_22 entry_23 entry_24 entry_221 entry_231 id_22 entry_241 entry_251
id_13 entry_32 entry_33 entry_34 entry_321 entry_331 id_23 entry_341 entry_251

我该如何完成?

hive hdfs hiveql hive-table
1个回答
0
投票

@@ Naveen Kumar,这里的解决方案是为3个源创建外部表。接下来,使用3种来源中所需列的架构创建组合的内部表。我称这些临时表或临时表。一旦创建了这些登台表,您就应该能够将插入的选择作为INSERT INTO Combined_table SELECT ...

© www.soinside.com 2019 - 2024. All rights reserved.