使用动态列插入Hive

时间:2017-11-22 17:33:40

标签: hadoop hive emr

我收到列是动态的文件。 File1可以是

column1 column2 column3 column4 column5 column6 column7

File2可以是

column1 column2 column9 column10    column11    column12    column13

File3可以是

column1 column2 column3 column10    column11

如何将hive表修改为我将使用该文件接收的列。

2 个答案:

答案 0 :(得分:1)

它会非常混乱,但没有任何明确的分隔符,你可以做的最好的事情就是定义一个RegexSerDe并捕获每个可能的列。

您缺少的列基本上是可选的捕获组()?

你的另一个选择是让Spark根据标题行推断架构和缺少列,如果你有一个

只要在原始数据上获得文本表,就应该将其转换为适当的列式数据格式。

答案 1 :(得分:-1)

Hive希望结构能够被修复,与任何RDBM一致。

一个选项是您可能希望包含所有文件中预期的完整列(如果事先已知),并且只填充接收数据的列并将其他列留空?