【发布时间】:2020-11-07 10:50:47
【问题描述】:
我有一个表垂直包含数据(attr_name 和 attr_value 列),如下所示,但我想垂直打印数据。在 Hive 中可以吗?
+------------------------+--------+--------+---------------+------------+
|relation |object |instance|attr_name |attr_value |
+------------------------+--------+--------+---------------+------------+
|Summary~>Disk~>Disk-1 |Disk |Disk-1 |Size_MB |7726 |
|Summary~>Disk~>Disk-1 |Disk |Disk-1 |Write_MB |694 |
|Summary~>Disk~>Disk-1 |Disk |Disk-1 |Time_Pct |4 |
|Summary~>Disk~>Disk-1 |Disk |Disk-1 |Disk |DISK0 |
|Summary~>Disk~>Disk-2 |Disk |Disk-2 |Size_MB |476937 |
|Summary~>Disk~>Disk-2 |Disk |Disk-2 |Write_MB |0 |
|Summary~>Disk~>Disk-2 |Disk |Disk-2 |Time_Pct |4 |
|Summary~>Disk~>Disk-2 |Disk |Disk-2 |Disk |DISK1 |
+------------------------+--------+--------+---------------+------------+
我可以进行普通查询来获取 attr_name 的 attr_value。但我想获取与同一实例相关的所有输出行。
我想按实例获取所有 attr_name 和 attr_value 组,其中 attr_value='DISK1',而查询引用将是 attr_value 仅限。
如果我像选择关系一样查询,所有 attr_name 作为列,所有 attr_value 作为表名中的值,其中相关实例的 attr_value IN (DISK1)。对于这个查询 下面应该输出。我不想按实例分组,因为查询需要基于 attr_value。
我可以得到这个值吗?
+------------------------+--------+--------+----------+----------+---------+------+
|relation |object |instance|Size_MB |Write_MB |Time_Pct |DISK |
+------------------------+--------+--------+----------+----------+---------+------+
|Summary~>Disk~>Disk-2 |Disk |Disk-2 |476937 |0 |4 |DISK1 |
+------------------------+--------+--------+----------+----------+---------+------+
【问题讨论】:
标签: sql hive hql vertical-alignment