我正在寻找一种方法来计算Hive中表格中的列数。
我知道以下代码适用于Microsoft SQL Server。是否有Hive等价物?
SELECT COUNT(*),
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'database_name'
AND TABLE_SCHEMA = 'schema_name'
AND TABLE_NAME = 'table_name'
答案 0 :(得分:8)
试试这个
SHOW COLUMNS(FROM | IN)table_name [(FROM | IN)db_name]
答案 1 :(得分:4)
试试这个,它会显示你的表格的列:
DESCRIBE schemaName.tableName;
答案 2 :(得分:0)
您必须检查您的HIVE是否包含HIVE-287,因为对于不包含HIVE-287的HIVE版本,您需要使用COUNT(1)代替COUNT(*)。
答案 3 :(得分:0)
我不知道直接计算列的方法,但是,我通过以下方式间接解决了我的需求问题:
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.0</version>
<exclusions>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
(我需要echo 'table1name:, '`hive -e 'describe schemaname.table1name;' | grep -v 'col_name' | wc -l > num_columns.csv
echo 'table2name:, '`hive -e 'describe schemaname.table2name;' | grep -v 'col_name' | wc -l >> num_columns.csv
...
位,因为默认情况下我打开了标题;没有它你会在grep -v
步骤中计算出太多行。)
答案 4 :(得分:0)
只需做一个描述,它会向您显示所有列,然后在底部显示,然后您可以看到提取的行数即列数。