2014-07-01 17 views
5

Ho installato Pig 0.12 nella mia macchina. quando corroPIG: ERROR 1000: Errore durante l'analisi

darwin$ pig 
grunt> ls /data/ 
hdfs://Nmame:10001/data/pg20417.txt<r 3> 674570 
hdfs://Nname:10001/data/pg4300.txt<r 3> 1573150 
hdfs:/Nname:10001/data/pg5000.txt<r 3> 1423803 
hdfs://Nname:10001/data/weather <dir> 

ma quando cerco di creare una query, ottengo il seguente errore:

grunt> book = load '/data/pg4300.txt' as (lines:chararray); 
2014-06-30 17:40:08,939 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Error during parsing. Encountered " <PATH> "book=load "" at line 2, column 1. 
Was expecting one of: 
    <EOF> 
    "cat" ... 
    "clear" ... 
    "fs" ... 
    "sh" ... 
    "cd" ... 
    "cp" ... 
    "copyFromLocal" ... 
    "copyToLocal" ... 
    "dump" ... 
    "\\d" ... 
    "describe" ... 
    "\\de" ... 
    "aliases" ... 
    "explain" ... 
    "\\e" ... 
    "help" ... 
    "history" ... 
    "kill" ... 
    "ls" ... 
    "mv" ... 
    "mkdir" ... 
    "pwd" ... 
    "quit" ... 
    "\\q" ... 
    "register" ... 
    "rm" ... 
    "rmf" ... 
    "set" ... 
    "illustrate" ... 
    "\\i" ... 
    "run" ... 
    "exec" ... 
    "scriptDone" ... 
    "" ... 
    "" ... 
    <EOL> ... 
    ";" ... 

Details at logfile: /Users/Documents/pig_1404175088198.log 

Ho provato a cambiare load-LOAD e as-AS ma niente ha funzionato.

+0

rimuovere/prima di dati. Make it: book = carica 'data/pg4300.txt' as (lines: chararray); – gonephishing

+0

Quando dici di averlo installato, intendi che hai preso una versione pre-compilata o l'hai creata tu stesso dalla fonte? – fxm

+0

qual è lo stato attuale del tuo problema. Ha funzionato? O cos'altro hai provato? – gonephishing

risposta

0

provare le seguenti soluzioni dovrebbe funzionare -

1) Rimuovere le/dati/non v'è alcuna necessità di utilizzare percorsi assoluti se i dati è presente nella directory predefinita HDFS. Io parto dal presupposto che il/i dati è la directory predefinita in cui si memorizzano tutti i vostri dati -

book = load 'pg4300.txt' as (lines:chararray); 

2) Provare a usare PigStorage to specify the delimiter. Sto usando la virgola come delimitatore qui è possibile sostituirlo con quello che si utilizza -

book = load 'pg4300.txt' using PigStorage(',') as (lines:chararray); 

Spero che questo aiuti.

6

Ho incontrato lo stesso problema ed era alla ricerca di una soluzione. Si scopre che questo succede se non si dà spazio. book=load ti darà un errore. book = load funzionerà. Non sono sicuro che si tratti di un comportamento previsto.

+1

Non posso credere che questa sia la soluzione giusta. Ho perso il mio pomeriggio su questo ... grazie! :) –

+0

Semplicemente incredibile! Ho passato ore a cercare di capirlo. Peggiore messaggio di errore mai! –

0

Deriva sopra Errore: stocks_by_symbol = Azioni del GRUPPO per stock_symbol;

Works Great: stocks_by_symbol = GROUP stock by stock_symbol;

Avviso lo spazio prima e dopo "="

0

si è verificato questo errore quando ha cercato di scaricare un alias (nome non corretto) nel prompt di grugnito. ad esempio, anziché dump r45, digitato come dump 45, quindi genera l'errore precedente.

Dopo aver fornito il nome alias corretto, funziona correttamente.

E inoltre, assicurarsi di eseguire la query dal percorso in cui si trova il file di caricamento.