简体   繁体   English

计算 Hive 中的列数

[英]Count Number of Columns In Hive

I am looking for a way to count the number of columns in a table in Hive.我正在寻找一种方法来计算 Hive 中表中的列数。

I know the following code works in Microsoft SQL Server.我知道以下代码适用于 Microsoft SQL Server。 Is there a Hive equivalent?是否有 Hive 等价物?

SELECT COUNT(*),
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE TABLE_CATALOG = 'database_name'
   AND TABLE_SCHEMA = 'schema_name'
   AND TABLE_NAME = 'table_name'

try this试试这个

SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name] SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name]

试试这个,它会显示你的表的列:

DESCRIBE schemaName.tableName;

I do not know of a way to count the columns directly, however, I solved the problem for my needs indirectly via:我不知道直接计算列数的方法,但是,我通过以下方式间接解决了我的需要:

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
...

(I needed the grep -v bit because I have headers on by default; without it you get one too many lines counted in the wc -l step.) (我需要grep -v位,因为默认情况下我有标题;没有它,你会在wc -l步骤中计算出太多行。)

您必须检查您的 HIVE 是否包含 HIVE-287,因为对于不包含 HIVE-287 的 HIVE 版本,您需要使用 COUNT(1) 代替 COUNT(*)。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM