【问题标题】:Is expression based partitioning supported in hive?Hive 是否支持基于表达式的分区?
【发布时间】:2019-04-08 18:34:37
【问题描述】:

我有一个包含列的表,我可以使用该列基于表达式创建分区

我了解到 IBM 的 Big SQL 技术具有此功能。

我也知道我们可以按列在 hive 中进行分区,但是表达式呢?

在这种情况下,我正在做一个演员..它可以是任何表达式

CREATE TABLE INVENTORY_A (
  trans_id int, 
  product varchar(50), 
  trans_ts timestamp
) 
PARTITIONED BY ( 
   cast(trans_ts as date) AS date_part
)

我希望记录按日期值进行分区。所以我希望当用户写一个像

这样的查询时
select * from INVENTORY_A where trans_ts BETWEEN timestamp '2016-06-23 14:00:00.000' AND timestamp '2016-06-23 14:59:59.000'   

查询将足够智能,可以按日期分解时间戳并仅在日期上进行过滤

【问题讨论】:

    标签: hadoop hive data-partitioning


    【解决方案1】:

    您可以使用Dynamic partitioning 并在选择查询中转换您的变量。

    【讨论】:

    • 我已经看完了这篇文章,但似乎在 Hive 中,create table 语句需要按列分区以使用数据类型指定..如果我将数据类型指定为 Date 那么在我的查询中我会需要在 where 子句中使用日期字段。我想使用时间戳字段。有什么想法吗?
    猜你喜欢
    • 2018-02-26
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多