计算Hive中的列数

时间:2013-12-16 16:22:15

标签: sql sql-server count hive distinct

我正在寻找一种方法来计算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'

5 个答案:

答案 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)

只需做一个描述,它会向您显示所有列,然后在底部显示,然后您可以看到提取的行数即列数。