Join 配置单元查询,有效的非等联接?

Join 配置单元查询,有效的非等联接?,join,hive,Join,Hive,我有两张桌子 表一包含 用户ID 配子体 starttimestamp 结束时间戳 表2包含 用户ID 动作时间戳 行动 给定userid和gameid,我想看看每个游戏id中有多少个动作。如果只允许equi连接,那么将它们连接在一起的有效方法是什么 我的大多数交叉连接和过滤尝试都以mapper和reducer陷入100%的困境而告终 非等联接在配置单元中不可用 要优化equi联接,可以尝试以下方法 1.您可以在配置单元中实现 2.也读一下这个 3.是否有多个作业?如果有,请在配置单元中启用并行

我有两张桌子

表一包含

用户ID 配子体 starttimestamp 结束时间戳

表2包含

用户ID 动作时间戳 行动

给定userid和gameid,我想看看每个游戏id中有多少个动作。如果只允许equi连接,那么将它们连接在一起的有效方法是什么


我的大多数交叉连接和过滤尝试都以mapper和reducer陷入100%的困境而告终

非等联接在配置单元中不可用

要优化equi联接,可以尝试以下方法

1.您可以在配置单元中实现

2.也读一下这个

3.是否有多个作业?如果有,请在配置单元中启用并行执行。 如果你的工作是独立的,它们是并行的

4.如果其中一个表很小,请在配置单元中使用带添加文件选项的分布式缓存。

您可以在WHERE子句中处理所有“theta连接”(非等连接)条件。像这样:

SELECT * FROM OrderLineItem li LEFT OUTER JOIN ProductPrice p ON p.ProductID = li.ProductID
WHERE (p.StartDate IS NULL AND p.EndDate IS NULL)
OR li.OrderDate BETWEEN p.StartDate AND p.EndDate;
当然,本例假设StartDate和EndDate都是ProductPrice的不可为空的列