Крест Применить Эквивалент в Улей? - PullRequest
0 голосов
/ 27 октября 2018

Я хочу создать эффект перекрестного применения в 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;

Как я могу выполнить эквивалент этого в Hive EMR?

Я проверил Вид сбоку документация, но все ссылки взрываются, а у меня нет массива.

Ответы [ 2 ]

0 голосов
/ 06 августа 2019

Вместо do CROSS APPLY вы можете сделать CROSS JOIN в вашем случае.Fe:

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;
0 голосов
/ 07 декабря 2018

Я закончил с тем, что просто добавил дополнительное поле с одним значением и соединил две таблицы вместе для получения того же эффекта.

В итоге получилось что-то вроде:

with d as (
select column, 'AreYouKiddingMe' as k from table
), e as (
select column2, 'AreYouKiddingMe' as k from table2
)
select * from d inner join e on d.k = e.k
...