我可以将不同文件格式的数据保存在同一个hive表中吗?

时间:2017-11-23 15:59:32

标签: hadoop hive bigdata

我正在接收csv,xml,json等格式的数据,我希望将所有文件保存在同一个hive表中。是否可以实现?

2 个答案:

答案 0 :(得分:1)

Hive希望一个表的所有文件使用相同的分隔符,应用相同的压缩等。因此,您不能在具有多种格式的文件之上使用Hive表。

您可能想要使用的解决方案是

  • 为每种文件格式
  • 创建一个单独的表(json / xml / csv)
  • 为上面创建的3个表的UNION创建一个视图。

这样,数据的使用者必须只查询一个视图/对象,如果这是您正在寻找的。

答案 1 :(得分:0)

是的,您可以通过组合不同的外部表来实现这一目标。

由于将需要不同的SerDes,以及如何读取不同文件中的列,因此您需要为每种类型的文件(和表)创建一个外部表。然后,根据Ramesh的建议,可以将来自每个外部表的数据组合到具有UNION的视图中。然后可以使用该视图从这些视图中读取,例如,您可以使用将数据插入托管表。