如何根据csv的形状更改配置单元表模式

c2e8gylq  于 2021-07-13  发布在  Hadoop
关注(0)|答案(1)|浏览(271)

如何根据csv的形状改变配置单元表模式
配置单元[部署在azure hdinsight中]
数据文件csv[在azure blob存储中]
我的要求:
例如。我有3列a b c的csv
另一个csv有3列a b d
有没有办法根据csv形状创建配置单元表?
我尝试的是:
我在hive中创建了一个带有b c d的表
和加载的文件1(a b c)
预期为 A B C D - x x x null 文件2(a b d)
预期为 A B C D - x x null x 但是
文件2(a b d)
实际结果 A B C D - x x x null 如有任何建议,我们将不胜感激。
先谢谢你

olqngx59

olqngx591#

不,在单表中这是不可能的,可以通过以下方式解决:
1两个表+视图创建两个表:t1(a,b,c)和t2(a,b,d)和视图

select A,B,C, null as D 
  from table1
UNION ALL
select A, B, null as C, D
  from table2

2创建一个包含a、b、c列的表,以及一个基于文件名逻辑的视图(伪代码,检查输入的文件名实际返回什么,并相应地修复)

select A, B, 
       case when INPUT__FILE__NAME == 'file1' then C else null  end  as C,
       case when INPUT__FILE__NAME == 'file2' then C else null  end  as D

但这个视图在其他工具(如presto)中不起作用,所以,第一个选项更好。

相关问题