DESCRIBE
指定したテーブルの 1 つ以上の列 (パーティション列を含む) を表示します。このコマンドは、複雑な列の属性を調べるのに便利です。
概要
DESCRIBE [EXTENDED | FORMATTED] [db_name.]table_name [PARTITION partition_spec] [col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )]
重要
このステートメントの構文は DESCRIBE
であり、table_name
DESCRIBE TABLE
ではありません。後者の構文を使用すると、エラーメッセージ table_name
FAILED: SemanticException [Error 10001]: Table not found table
が表示されます。
パラメータ
- [EXTENDED | FORMATTED]
-
出力の形式を判断します。これらのパラメータを省略すると、列名と対応するデータ型 (パーティション列を含む) が表形式で表示されます。
FORMATTED
を指定すると、列名とデータ型が表形式で表示されるだけでなく、詳細なテーブルおよびストレージ情報も表示されます。EXTENDED
は、列およびデータ型の情報を表形式で表示し、Thrift シリアル化形式でテーブルの詳細なメタデータを示します。この形式は読みにくいですが、主としてデバッグの際に役立ちます。 - [PARTITION partition_spec]
-
含まれている場合は、
partition_spec
で指定されたパーティションのメタデータが一覧表示されます。partition_spec
は(partition_column = partition_col_value, partition_column = partition_col_value, ...)
の形式です。 - [col_name ( [.field_name] | [.'$elem$'] | [.'$key$'] | [.'$value$'] )* ]
-
確認する列と属性を指定します。構造体の要素には
.field_name
、配列要素には'$elem$'
、マップキーには'$key$'
、およびマップ値には'$value$'
を指定できます。これを再帰的に指定することで、複雑な列を詳しく調査できます。
例
DESCRIBE orders
DESCRIBE FORMATTED mydatabase.mytable PARTITION (part_col = 100) columnA;
次のクエリおよび出力では、Amazon EMR サンプルデータに基づいた impressions
テーブルの列およびデータ型の情報が表示されています。
DESCRIBE impressions
requestbegintime string from deserializer adid string from deserializer impressionid string from deserializer referrer string from deserializer useragent string from deserializer usercookie string from deserializer ip string from deserializer number string from deserializer processid string from deserializer browsercokie string from deserializer requestendtime string from deserializer timers struct<modellookup:string,requesttime:string> from deserializer threadid string from deserializer hostname string from deserializer sessionid string from deserializer dt string # Partition Information # col_name data_type comment dt string
次のクエリおよび出力の例では、FORMATTED
オプションが使用された場合の同じテーブルの結果が表示されています。
DESCRIBE FORMATTED impressions
requestbegintime string from deserializer adid string from deserializer impressionid string from deserializer referrer string from deserializer useragent string from deserializer usercookie string from deserializer ip string from deserializer number string from deserializer processid string from deserializer browsercokie string from deserializer requestendtime string from deserializer timers struct<modellookup:string,requesttime:string> from deserializer threadid string from deserializer hostname string from deserializer sessionid string from deserializer dt string # Partition Information # col_name data_type comment dt string # Detailed Table Information Database: sampledb Owner: hadoop CreateTime: Thu Apr 23 02:55:21 UTC 2020 LastAccessTime: UNKNOWN Protect Mode: None Retention: 0 Location: s3://us-east-1.elasticmapreduce/samples/hive-ads/tables/impressions Table Type: EXTERNAL_TABLE Table Parameters: EXTERNAL TRUE transient_lastDdlTime 1587610521 # Storage Information SerDe Library: org.openx.data.jsonserde.JsonSerDe InputFormat: org.apache.hadoop.mapred.TextInputFormat OutputFormat: org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat Compressed: No Num Buckets: -1 Bucket Columns: [] Sort Columns: [] Storage Desc Params: paths requestbegintime, adid, impressionid, referrer, useragent, usercookie, ip serialization.format 1
次のクエリおよび出力の例では、EXTENDED
オプションが使用された場合の同じテーブルの結果が表示されています。詳細なテーブル情報は 1 行で出力されますが、ここでは読みやすくするためにフォーマットされています。
DESCRIBE EXTENDED impressions
requestbegintime string from deserializer adid string from deserializer impressionid string from deserializer referrer string from deserializer useragent string from deserializer usercookie string from deserializer ip string from deserializer number string from deserializer processid string from deserializer browsercokie string from deserializer requestendtime string from deserializer timers struct<modellookup:string,requesttime:string> from deserializer threadid string from deserializer hostname string from deserializer sessionid string from deserializer dt string # Partition Information # col_name data_type comment dt string Detailed Table Information Table(tableName:impressions, dbName:sampledb, owner:hadoop, createTime:1587610521, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:requestbegintime, type:string, comment:null), FieldSchema(name:adid, type:string, comment:null), FieldSchema(name:impressionid, type:string, comment:null), FieldSchema(name:referrer, type:string, comment:null), FieldSchema(name:useragent, type:string, comment:null), FieldSchema(name:usercookie, type:string, comment:null), FieldSchema(name:ip, type:string, comment:null), FieldSchema(name:number, type:string, comment:null), FieldSchema(name:processid, type:string, comment:null), FieldSchema(name:browsercokie, type:string, comment:null), FieldSchema(name:requestendtime, type:string, comment:null), FieldSchema(name:timers, type:struct<modellookup:string,requesttime:string>, comment:null), FieldSchema(name:threadid, type:string, comment:null), FieldSchema(name:hostname, type:string, comment:null), FieldSchema(name:sessionid, type:string, comment:null)], location:s3://us-east-1.elasticmapreduce/samples/hive-ads/tables/impressions, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.openx.data.jsonserde.JsonSerDe, parameters:{serialization.format=1, paths=requestbegintime, adid, impressionid, referrer, useragent, usercookie, ip}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), partitionKeys:[FieldSchema(name:dt, type:string, comment:null)], parameters:{EXTERNAL=TRUE, transient_lastDdlTime=1587610521}, viewOriginalText:null, viewExpandedText:null, tableType:EXTERNAL_TABLE)