2016-03-25 7 views
0

Karakterleri kaldırmaya çalışıyorum: \ n, \ t ve \ r, Pig'daki bir sütundan ancak yanlış çıktı alıyorum. İşteDomuz - Satır besleme, dönüş ve sekmeyi kaldırın

ne yapıyorum geçerli:

qr_1 = LOAD 'hdfs://localhost:9000/sample.csv' USING PigStorage(',') as (Id:int,PostTypeId:int,AcceptedAnswerId:int,ParentId:int,CreationDate:chararray,DeletionDate:chararray,Score:int,ViewCount:int,Body:chararray,OwnerUserId:int,OwnerDisplayName:chararray,LastEditorUserId:int,LastEditorDisplayName:chararray,LastEditDate:chararray,LastActivityDate:chararray,Title:chararray,Tags:chararray,AnswerCount:int,CommentCount:int,FavoriteCount:int,ClosedDate:chararray,CommunityOwnedDate:chararray); 
qr_1 = FOREACH qr_1 GENERATE Id .. ViewCount, REPLACE(Body,'\n','') as Body, OwnerUserId .. ; 
qr_1 = FOREACH qr_1 GENERATE Id .. ViewCount, REPLACE(Body,'\r','') as Body, OwnerUserId .. ; 
qr_1 = FOREACH qr_1 GENERATE Id .. ViewCount, REPLACE(Body,'\t','') as Body, OwnerUserId .. ; 

Girdi:

5585779,1,5585800,,2011-04-07 18:27:54,,1432,3090250,"<p>How can I convert a <code>String</code> to an <code>int</code> in Java?</p> 

<p>My String contains only numbers and I want to return the number it represents.</p> 

<p>For example, given the string <code>""""1234""""</code> the result should be the number <code>1234</code>.</p>",537967,,2756409,user166390,2015-09-10 21:30:42,2016-03-07 00:42:49,Converting String to Int in Java?,<java><string><type-conversion>,12,0,239 

Çıktı: Ne

(5585779,1,5585800,,2011-04-07 18:27:54,,1432,3090250,"<p>How can I convert a <code>String</code> to an <code>int</code> in Java?</p>,,,,,,,,,,,,,) 
(,,,,,,,,,,,,,,,,,,,,,) 
(,,,,,,,,,,,,,,,,,,,,) 
(,,,,,,,,,,,,,,,,,,,,,) 
(,,537967,,2756409,user166390,,,Converting String to Int in Java?,,12,0,239,,,,,,,,,) 

yapıyorum?

Teşekkürler.

Ayrıca "\\ n" bir fark yaratmıyor.

+1

Verileri neden önce satırlara göre okuyorsunuz, sonra virgüllere ayırmıyorsunuz? –

+0

@ cricket_007 Gövde sütunu satır sonu içeriyor. –

+0

Gövde sütununda virgül bulunmuyor mu? –

cevap

2

Orada virgülle Verilerinizde ve alanlar ve şema CSVLoader matching.Use ve sonra kullanmak '\\ t' yerine komutunu DEĞİŞTİR değildir bu yüzden, bu '\\ n', '\\ r'

<p>For example, given the string