Hoe te subquery te schrijven en te gebruiken – in – clausule in Hive – stack overflow

LEFT JOIN SEMI implementeert de gecorreleerde IN / BESTAAT subquery semantiek op een efficiënte manier. Sinds Hive momenteel niet ter ondersteuning / BESTAAT subqueries, kunt u uw vragen te herschrijven met de LINKER SEMI JOIN. De beperkingen van het gebruik van LEFT JOIN SEMI is dat de rechter-bijzettafel alleen mag worden verwezen in de join conditie (ON-clausule), maar niet in WHERE- of SELECT-clausules etc.

herschreven kan worden tot:

Ik gebruik korf versie 0.7.1 en SELECT * FROM myTable WHERE MijnKolom IN ( ‘thisThing’, ‘thatThing’);

Ik testte dit op een soort column STRING, dus ik ben niet zeker of dit werkt universeel op alle soorten data, omdat ik merkte als Wawrzyniec boven die het Handboek Hive Taal zegt dat het niet wordt ondersteund en in plaats daarvan te gebruiken LEFT SEMI JOIN genoemd, maar het werkte prima in mijn test.

antwoordde 4 april ’13 om 19:03

Hive ondersteunt perfect de IN. het heeft geen ondersteuning voor de subquery in de WHERE-component

antwoordde 15 Feb ’13 om 10:04

neem aan tafel t1 (id, naam) en tabel T2 (id, naam)

Vermelding alleen die ids uit t1 die in T2 bestaat (in principe IN clausule)

Vermelding alleen die ids uit t1 dat bestaat alleen in T1, maar niet in T2 (in principe NIET IN clausule)

antwoordde 16 januari ’16 op 19:34

Uw antwoord

2017 Stack Exchange, Inc

Bron: stackoverflow.com

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *