2017-10-19 6 views
1

Ich habe können auf Tabellen sagen Tabelle ein X und Tabelle zwei ist Z.Hive Join auf zwei Tabellen hat eine andere Partition nicht

Tabelle Z eine Partition Prädikat hat.

Tabelle X ist ein Land Tabelle, die die folgenden Felder hat

country_id, country_name

Tabelle Z einige Daten enthält, und ich möchte die country_id dieser Tabelle mit Tabelle X kartieren

ich schon versucht, diese

select c.country_id, c.country_name, s.sales_id, s.sales_ctry_id 
from x_table c 
join z_table s 
on (c.country_id=s.sales_ctry_id) 

aber da Tabelle Z durch ein Datumsfeld partitioniert ist, kann ich diese Verknüpfung nicht zu wor k.

Irgendwelche Vorschläge?

+0

Ich habe eine where-Anweisung auf (c.country_id = sales.ctry_id wo sales.dt = '20171010') Aber immer noch nicht, um sie auszuführen. –

Antwort

0

Anstatt WHERE zu verwenden, müssen Sie das zusätzliche Prädikat der Partition zum Join-Prädikat hinzufügen, indem Sie AND verwenden.

ON (c.country_id=sales.ctry_id AND sales.dt='20171010')