首页 > 解决方案 > 在 Hive 中等效交叉应用?

问题描述

我想在 AWS EMR Hive 中创建交叉应用的效果。我这里有一些在 SQL Server 2017 中运行的示例代码。

with r as (
select 1 as d
union all
select 2 as d
)
select * from r
cross apply (select 'f' as u) e;

如何在 EMR Hive 中运行与此等效的操作?

我查看了横向视图文档,但所有引用都爆炸了,而且我没有数组。

标签: hivehiveqlamazon-emr

解决方案


而不是CROSS APPLY你可以CROSS JOIN在你的情况下做。铁:

SET hive.strict.checks.cartesian.product = false;

WITH r AS (
    SELECT 1 AS d
    UNION ALL
    SELECT 2 AS d
)
SELECT *
FROM r
CROSS JOIN (SELECT 'f' AS u) e;

推荐阅读