sql - 在配置单元的指定条件下从单行创建多行

标签 sql hadoop hive

我正在尝试执行 Null 检查。例如:

Col_A | Col_B | Col_C | Col_D
null  | boy   | null  | dust

然后我想要输出为:

Col_A | Col_B | Col_C | Col_D | New_Col
null  | boy   | null  | dust  | Col_A failed null check
null  | boy   | null  | dust  | Col_D failed null check

执行此操作的正确方法是什么?

最佳答案

select t.*
      ,concat(elt(e.pos+1,'Col_A','Col_B','Col_C','Col_D'),' failed null check') as New_Col
from   mytable t lateral view posexplode (array(Col_A,Col_B,Col_C,Col_D)) e
where  e.val is null

关于sql - 在配置单元的指定条件下从单行创建多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43321602/

相关文章:

mysql - SQLzoo 教程 | GROUP BY 和 HAVING

来自两个表的 SQL Multiple COUNT(),在一个 LEFT JOIN 中

hadoop - 无法使用 ParquetStorer 存储整数数据

Hive:Avro 的外部分区表

sql - Oracle 查询 ORA-01799 : a column may not be outer-joined to a subquery

使用 JDBC Java INSERT 到 SQL 数据库

hadoop - 如何获取特定配置单元查询的 cpu、内存和 IO 使用情况?

java - Pig UDF,在批处理工作中删除了分布式缓存中的文件

性能调整 Hive 查询

hadoop - 在配置单元中加载结构或任何其他复杂数据类型