Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Plain View
Pig, mail # user - REPLACE with backslash


+
Danfeng Li 2012-09-07, 21:06
+
Bill Graham 2012-09-07, 21:14
+
=?KOI8-U?B?96bUwcymyiD0yc... 2012-09-08, 07:39
Copy link to this message
-
RE: REPLACE with backslash
Danfeng Li 2012-09-08, 20:44
You mean instead of
REPLACE(name,'dir','\\\\\\\\test\\\\sub');
Using
REPLACE(name,'dir','[\\]test[\]sub');
?

It seems not working for me.

Thanks.
Dan

-----Original Message-----
From: Віталій Тимчишин [mailto:[EMAIL PROTECTED]]
Sent: Saturday, September 08, 2012 12:39 AM
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: Re: REPLACE with backslash

I prefer [\\]. It does the same, but you don't need additional escaping.

2012/9/8 Bill Graham <[EMAIL PROTECTED]>

> To get \ in a regex you need to escape it to \\, since the slash is
> reserved in the regex. Then each slash needs to be escaped again to be
> used in a java string. Hence \\\\. Painful, yes.
>
>
> On Fri, Sep 7, 2012 at 2:06 PM, Danfeng Li <[EMAIL PROTECTED]> wrote:
>
> > Hi,
> >
> > I'm little bit puzzled about REPLACE when there is backslash involved.
> >
> > I want to replace all the "dir" in the string with "\\test\sub",
> >
> > After a lot of try and error, I finally got it done, but I'm not
> > sure why it is the case. Here's my code
> >
> > A = load 'a.txt' as (name:chararray); B = foreach A generate
> > REPLACE(name,'dir','\\\\\\\\test\\\\sub');
> > dump B;
> >
> > The thing I'm confused about is why do I need to use "\\\\" in order
> > to generate a "\", can anyone explain the reason? I'm using pig 0.9.1.
> >
> > Thanks.
> >
> > Dan
> >
>
>
>
> --
> *Note that I'm no longer using my Yahoo! email address. Please email
> me at [EMAIL PROTECTED] going forward.*
>

--
Best regards,
 Vitalii Tymchyshyn
+
=?KOI8-U?B?96bUwcymyiD0yc... 2012-09-09, 17:28