ハイブに配列比較関数/ udfがあるかどうかはarray=array
ですか?例えばハイブ配列比較関数/ udfのものはありますか
:あなたはそれを含む配列を返す
array_diff($array1,$array2);
によって2つの配列の値を比較することができC
とD
が配列
ハイブに配列比較関数/ udfがあるかどうかはarray=array
ですか?例えばハイブ配列比較関数/ udfのものはありますか
:あなたはそれを含む配列を返す
array_diff($array1,$array2);
によって2つの配列の値を比較することができC
とD
が配列
配列は、構造を命じている、
concat_ws(<separator> , <array>)
この機能は、セパレータを使用して文字列にすべての配列要素に参加します。
create table arrayDemo(id bigint, list array<String>);
create table dummy(a int);
insert into table dummy values (1) ;
insert into arraydemo select 1, array("Paperino", "Topolino") from dummy;
insert into arraydemo select 2, array("Pippo", "Pluto") from dummy;
insert into arraydemo select 1, array("Pippo", "Pluto") from dummy;
select * from arraydemo;
+---------------+--------------------------+--+
| arraydemo.id | arraydemo.list |
+---------------+--------------------------+--+
| 1 | ["Paperino","Topolino"] |
| 2 | ["Pippo","Pluto"] |
| 1 | ["Pippo","Pluto"] |
+---------------+--------------------------+--+
select *
from arraydemo as a1
inner join arraydemo as a2
on concat_ws("|", a1.list) = concat_ws("|", a2.list);
+--------+--------------------------+--------+--------------------------+--+
| a1.id | a1.list | a2.id | a2.list |
+--------+--------------------------+--------+--------------------------+--+
| 1 | ["Paperino","Topolino"] | 1 | ["Paperino","Topolino"] |
| 2 | ["Pippo","Pluto"] | 2 | ["Pippo","Pluto"] |
| 1 | ["Pippo","Pluto"] | 2 | ["Pippo","Pluto"] |
| 2 | ["Pippo","Pluto"] | 1 | ["Pippo","Pluto"] |
| 1 | ["Pippo","Pluto"] | 1 | ["Pippo","Pluto"] |
+--------+--------------------------+--------+--------------------------+--+
私はこの例では "toString()"形式で使用しています。場合によっては、配列の重要な部分だけを比較することが最も良い場合もあります。
select *
from arraydemo as a1
inner join arraydemo as a2
on a1.list[0] = a2.list[0];
希望する場合があります。
ある
Select a.xyz, b.abc from a left join b on a.C=b.D
array1のエントリはpreseではない配列2または配列3のnt
hive-third-functionsを使用できます。便利なjson、配列、マップ関数を提供します。この質問のために、あなたは次のように使用することができます:
Select a.xyz, b.abc from a left join b on array_equals(a.C,b.D)
関数名に型があります。それは 'concat_ws'です –
ポインタroman-romanありがとう、私はそれを修正しました。 – ozw1z5rd