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

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

如何根据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)和视图

  1. select A,B,C, null as D
  2. from table1
  3. UNION ALL
  4. select A, B, null as C, D
  5. from table2

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

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

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

相关问题