Hive-从HDFS中的三个CSV文件的特定数据创建Hive表

时间:2020-04-15 11:58:04

标签: hive hdfs hiveql hive-table

我有三个.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

我如何做到这一点?

1 个答案:

答案 0 :(得分:2)

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