Mám požadavek, kde musím PŘIPOJIT tweety stůl s osoby jména, jako je filtrování tweetů pokud obsahuje nějaké jméno osoby. Mám následující data:
Tweety Tabulce: (70 milionů záznamů uložených jako ÚL Tabulka)
id | tweet |
---|---|
1 | Cristiano Ronaldo, největší všech dob |
2 | Brad Pitt filmy |
3 | Náhodné tweet bez jakékoliv jméno osoby |
Jména osob: (1,6 milionu jmen uložených v HDFS jako .tsv soubor)
id | person_name |
---|---|
1 | Cristiano Ronaldo |
2 | Brad Pitt |
3 | Angelina Jolie |
Očekávaný Výsledek:
id | tweet | person_name |
---|---|---|
1 | Cristiano Ronaldo, největší všech dob | Cristiano Ronaldo |
2 | Brad Pitt filmy | Brad Pitt |
Co jsem se snažil tak daleko:
Obrátila jsem se na jména osob .tsv soubor do ÚLU stolu, jak dobře a pak se pokusil spojit 2 tabulky s následující HIVE dotaz:
SELECT * FROM tweets t INNER JOIN people p WHERE instr(t.tweet, p.person_name) > 0;
Snažil se s ukázkových dat a funguje to v pohodě. Ale když se snažím spustit na celou údaje (70m tweety PŘIPOJIT s 1,6 m Osoby Jména), to trvá celou věčnost. Rozhodně to nevypadá velmi efektivní.
Chtěl jsem zkusit PŘIPOJIT s PRASE (stejně jako je to považováno za něco více efektivní než ROJ PŘIPOJIT), kde mohu přímo PŘIPOJIT jména osob .tsv soubor tweety ÚLU Stůl, ale nejste si jisti, jak se PŘIPOJIT na základě podřetězec v PRASE.
Může mi někdo prosím sdílejte PRASE PŘIPOJIT syntaxi pro tento problém, pokud máte nějaký nápad? Také, prosím, navrhnout nějaké alternativy, které mohu použít?