我收到列是动态的文件。 File1可以是
column1 column2 column3 column4 column5 column6 column7
File2可以是
column1 column2 column9 column10 column11 column12 column13
File3可以是
column1 column2 column3 column10 column11
如何将hive表修改为我将使用该文件接收的列。
答案 0 :(得分:1)
它会非常混乱,但没有任何明确的分隔符,你可以做的最好的事情就是定义一个RegexSerDe并捕获每个可能的列。
您缺少的列基本上是可选的捕获组()?
你的另一个选择是让Spark根据标题行推断架构和缺少列,如果你有一个
只要在原始数据上获得文本表,就应该将其转换为适当的列式数据格式。
答案 1 :(得分:-1)
Hive希望结构能够被修复,与任何RDBM一致。
一个选项是您可能希望包含所有文件中预期的完整列(如果事先已知),并且只填充接收数据的列并将其他列留空?