在嵌套子查询中显示配置单元分区

Posted

技术标签:

【中文标题】在嵌套子查询中显示配置单元分区【英文标题】:show hive partitions in a nested sub query 【发布时间】:2015-10-26 02:24:21 【问题描述】:

我有一个按天分区的配置单元表(例如 20151001、20151002、....)。 是否有一个 hive 查询以可以在嵌套子查询中使用的方式列出这些分区?

也就是说,我可以做一些事情吗:

SELECT * FROM (SHOW PARTITIONS test) a where ...

查询-

SELECT ptn FROM test 

返回与测试表中的行数一样多的行。我希望它只返回与分区数一样多的行(不使用 DISTINCT 函数)

【问题讨论】:

【参考方案1】:

一个可能的解决方案是使用 shell 脚本/python 从 hdfs 位置查找感兴趣表的分区。

hive表对应的数据存储在hdfs e.g中

/hive/数据库/表/分区/数据文件

在你的情况下, /hive/database/table/20151001/datafiles

如果表被分桶,则单个文件的数量与集群大小一样多。

获得上述路径后,创建一个 shell 脚本以循环遍历该文件夹(在本例中为 20151001 等)

在 shell 变量中捕获它并将其作为参数传递给 hive 查询。

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review @il_raffa 这提供了问题的答案,即使不使用蜂巢 @Virendhar Sivaraman 请改进你的答案,因为它目前是写的,所以很难理解。要获得一个好的答案,您还应该更详细地描述如何执行循环 为答案添加了更多详细信息。希望这会有所帮助。

以上是关于在嵌套子查询中显示配置单元分区的主要内容,如果未能解决你的问题,请参考以下文章

求SQL相关子查询和嵌套子查询通俗的区别 ?

关于SQL DELETE嵌套子查询问题

SQL相关子查询和嵌套子查询的区别

Qt怎样设置QMainWindow窗口中嵌套的QWidget子窗口的背景色

SQL嵌套子查询和相关子查询的执行过程有啥区别

SQL嵌套子查询和相关子查询的执行过程有啥区别