2016-04-04 20 views
0

Aşağıda gösterildiği gibi csv biçiminde veri var.Apache domuz grubu işlev tarafından beklenen çıktıyı vermiyor

verileri aşağıda formatını User.csv altında adında

"first_name","last_name","company_name","address","city","county","postal","phone1","phone2","email","web" 

örnek veri var. Dosya aşağıdaki verileri içerir.

"Aleshia","Tomkiewicz","Alan D Rosenburg Cpa Pc","14, Taylor St","St. Stephens Ward","Kent","CT2 7PP","01835-703597","01944-369967","[email protected]","http://www.alandrosenburgcpapc.co.uk" 
"Evan","Zigomalas","Cap Gemini America","5, Binney St","Abbey Ward","Buckinghamshire","HP11 2AX","01937-864715","01714-737668","[email protected]","http://www.capgeminiamerica.co.uk" 
"France","Andrade","Elliott, John W Esq","8 Moor Place","East Southbourne and Tuckton W","Bournemouth","BH6 3BE","01347-368222","01935-821636","[email protected]","http://www.elliottjohnwesq.co.uk" 

Ben gibidir ait PigStorage

user = LOAD '/home/abhijit/Downloads/User.csv' USING PigStorage(','); 

DUMP user; 

çıkış kullanarak yüklenebilmesi için aynı çalıştığınızda:

("Aleshia","Tomkiewicz","Alan D Rosenburg Cpa Pc","14 Taylor St","St. Stephens Ward","Kent","CT2 7PP","01835-703597","01944-369967","[email protected]","http://www.alandrosenburgcpapc.co.uk") 
("Evan","Zigomalas","Cap Gemini America","5, Binney St","Abbey Ward","Buckinghamshire","HP11 2AX","01937-864715","01714-737668","[email protected]","http://www.capgeminiamerica.co.uk") 
("France","Andrade","Elliott, John W Esq","8 Moor Place","East Southbourne and Tuckton W","Bournemouth","BH6 3BE","01347-368222","01935-821636","[email protected]","http://www.elliottjohnwesq.co.uk") 

Ben şehir tarafından bir grup yapmak istiyorum.

(Binney St",{("Evan","Zigomalas","Cap Gemini America","5, Binney St","Abbey Ward","Buckinghamshire","HP11 2AX","01937-864715","01714-737668","[email protected]","http://www.capgeminiamerica.co.uk")}) 
("8 Moor Place",{("France","Andrade","Elliott, John W Esq","8 Moor Place","East Southbourne and Tuckton W","Bournemouth","BH6 3BE","01347-368222","01935-821636","[email protected]","http://www.elliottjohnwesq.co.uk")}) 
("St. Stephens Ward",{("Aleshia","Tomkiewicz","Alan D Rosenburg Cpa Pc","14 Taylor St","St. Stephens Ward","Kent","CT2 7PP","01835-703597","01944-369967","[email protected]","http://www.alandrosenburgcpapc.co.uk")}) 

COMPANY_NAME ve bunun bir parçası olarak ',' içerdiğinden adresi bir sorun yaratıyor: Ben de sıra çıktı almak

grp = group user by $4; 
dump grp; 

yazdım. Örneğin, "14, Taylor St" adresinde veya şirket_adresinde "Elliott, John W Esq".

yüzden benim $4"Taylor St" için tedavi edilir ve So çünkü adres verilerinde ekstra sınırlayıcı veya şirket_adı verilerinin değil "St. Stephens Ward"

düzgün yüklenmiş veya düzgün ayrılmış değildir ve fuction grup doğru sonucu vermiyor .

nasıl Benim için çözüm olmayacaktır

("Abbey Ward",{("Evan","Zigomalas","Cap Gemini America","5, Binney St","Abbey Ward","Buckinghamshire","HP11 2AX","01937-864715","01714-737668","[email protected]","http://www.capgeminiamerica.co.uk")}) 
("St. Stephens Ward",{("Aleshia","Tomkiewicz","Alan D Rosenburg Cpa Pc","14, Taylor St","St. Stephens Ward","Kent","CT2 7PP","01835-703597","01944-369967","[email protected]","http://www.alandrosenburgcpapc.co.uk")}) 
("East Southbourne and Tuckton W",{("France","Andrade","Elliott, John W Esq","8 Moor Place","East Southbourne and Tuckton W","Bournemouth","BH6 3BE","01347-368222","01935-821636","[email protected]","http://www.elliottjohnwesq.co.uk")}) 


grp = group a by $5 ; 

aşağıdaki gibi çıktı tarafından grubunu elde edebilirsiniz. Bunu zaten düşündüm.

+1

Verilerinizi yüklemek için CSVExcelStorage kullanmayı deneyin. Kaçmak ve doğru şekilde veriyi yüklemelidir. – LiMuBei

+0

Aynı –

+0

@LiMuBei'de deneyimleyip deneyimleyeceğim: Teşekkürler. 'CSVExcelStorage' kullanımı benim için çalıştı. Şimdi gruplamadan sonra doğru verileri elde edebiliyorum ... –

cevap

1

Sorun, PigStorage'un gözardı etmemesidir, bu nedenle sütunlar olmamalıdır (her giriş bir virgül içerdiğinde). Bu şekilde, doğru miktarda ve sütun dizisi yaratma, kaçan başa bu depolama olarak çözecek CSVExcelStorage kullanılması

.