Vedo due problemi: prima di tutto, i JOIN in hive funzionano solo con condizioni di uguaglianza, che come non funzioneranno in questo caso.
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins
Solo uguaglianza join join esterni, e semi sinistra join sono supportati in alveare. Hive non supporta condizioni di join che non sono condizioni di uguaglianza in quanto è molto difficile esprimere condizioni come una mappa/ridurre il lavoro.
Invece, questo vuole entrare in una clausola where.
In secondo luogo, vedo anche un problema con la stessa dichiarazione: '% table2.product%' viene interpretato come letteralmente la stringa '% table2.product%'. Inoltre, anche se questo stava facendo ciò che era previsto, proverebbe a cercare table2.product all'interno del brand, quando sembra che lo desideri nell'altro modo. Per ottenere la valutazione desiderata, è necessario aggiungere il carattere jolly al contenuto di table1.brand; per realizzare questo, vuoi concatenare i tuoi caratteri jolly nella tua espressione.
table2.product LIKE concat('%',table1.brand,'%'))
In questo modo, il vostro simile valuterà per '% Sony%' stringhe, '% di Apple%' ... ecc invece di '% table2.product%'.
quello che vuoi è di query di Brandon Bell, che ho fuse in questa risposta:
SELECT table1.brand, SUM(table2.sold)
FROM table1, table2
WHERE table2.product LIKE concat('%', table1.brand, '%')
GROUP BY table1.brand;
fonte
2015-07-10 15:18:29
http://stackoverflow.com/questions/40628396/hive-like-operator Si prega di controllare e consigliare per sopra Quear simile. Grazie –