Sto cercando di unire 2 set di dati, ad esempio A e B. Il set di dati A ha una variabile "Flag" che accetta 2 valori. Invece di fondere insieme entrambi i dati, stavo cercando di unire 2 set di dati basati sulla variabile "flag".Looping con Hiveql
Il codice fusione è la seguente:
create table new_data as
select a.*,b.y
from A as a left join B as b
on a.x=b.x
Dal momento che sto correndo codice Hive tramite CLI, sto chiamando questo attraverso il seguente comando
hive -f new_data.hql
La parte loop del codice Sto chiamando per unire i dati in base alla variabile "Flag" è la seguente:
for flag in 1 2;
do
hive -hivevar flag=$flag -f new_data.hql
done
Ho inserito il codice sopra in un altro file ".hql" asn chiamandolo:
hive -f loop_data.hql
Ma è un errore di lancio.
non può riconoscere in ingresso nei pressi di 'per' 'bandiera' 'in'
Qualcuno può dirmi dove sto facendo errore.
Grazie!
Il codice di ciclo non è una query/script hive.Hive -f può eseguire solo query hive. Usa il loop in uno script di shell. –
@KSNidhin: Grazie mille per il commento. Sto eseguendo il codice hive attraverso lo stucco. Potresti spiegare cosa intendi per script di shell? Sono tecnologicamente un po 'alle prime armi. – Beta
la variabile flag ha 2 valori 1 e 2 giusto? Quali sono i criteri di filtro nella query hive? –