如何获取Hive表的分区列名

Vin*_*nay 5 hive

我正在开发一个 unix 脚本,我将在其中处理由 A 列或 B 列分区的 Hive 表。我想找到表分区的列,以便我可以对这些分区实例进行后续操作.

Hive 中是否有任何属性可以直接返回分区列?

我想show create table如果没有任何其他可能的方法,我将不得不做一个并以某种方式提取分区名称。

Adi*_*tya 4

可能不是最好的,但另一种方法是使用描述命令

创建表:

create table employee ( id int, name string ) PARTITIONED BY (city string);
Run Code Online (Sandbox Code Playgroud)

命令:

hive -e 'describe formatted employee'  | awk '/Partition/ {p=1}; p; /Detailed/ {p=0}'
Run Code Online (Sandbox Code Playgroud)

输出:

# Partition Information
# col_name              data_type               comment

city                    string
Run Code Online (Sandbox Code Playgroud)

您可以根据您的需要改进它。

我不探索的另一个选项是通过查询元存储存储库表来获取表的分区列信息。

  • 嘿,你能告诉我们如何用 Spark 做到这一点(在 scala 中)..???谢谢 :-) (2认同)