2013-11-24 19 views
5

Bir veri dosyası ve ayrı konumlarda saklanan ilgili bir şema dosyası var. Verileri şema dosyasındaki şema kullanarak yüklemek istiyorum.Domuz: harici bir şema dosyası kullanarak veri dosyası yükleme

kullanmayı denedim, ancak bir hatayla karşılaştım.

Dosyayı doğru şekilde yüklemek için sözdizimi nedir?

data1 - complex - - - - format - - 
data1 event_type - - - - - long - "ends '\001'" 
data1 event_id - - - - - varchar(50) - "ends '\001'" 
data1 name_format - - - - - varchar(10) - "ends newline" 

cevap

6

AS sözcüğünün şema dosyasının yolunu doğrudan şema belirterek değildir içindir:

şema dosyası formatı gibi bir şeydir.

A = LOAD '<file path>' USING PigStorage('\u0001') as 'type: long, id:chararray, nameformat:chararray'; 

Alternatif olarak dosya .pig_schema adlı şemayı içeren ve aynı zamanda işe yarayabilir girişinizi dizinde yer. Bunu hiç denemedim. PigStorage ile tutarken -schema seçeneğini belirtirseniz, bu dosya da oluşturulur

{"fields":[ 
     {"name":"type","type":55,"description":"Fu","schema":null}, 
     {"name":"id","type":15,"description":"Bar","schema":null}, 
     {"name":"nameFormat","type":55,"description":"Xu","schema":null}, 
    ] ,"version":0,"sortKeys":[],"sortKeyOrders":[]} 

: Bu şu sözdizimi ile bir JSON dosyası olmalıdır.

7

Veri dosyası şema dosyası ile yüklenebilir.

Verilerinizi '-schema' bayrağıyla kaydettiğinizde, çıktı yolunda, şema ile json'u tutan .pig-schema dosyası vardır. Verileri

B = LOAD '<>' USING PigStorage(',','-schema'); 

yüklerken

daha fazla detay için

describe A; 

kontrol this good post çalıştırarak Sen şemayı görebilirsiniz kullanabilirsiniz.

Bu özellik, Pig 0.10 ile başlayarak kullanılabilir.