Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Threaded View
Pig >> mail # user >> REPLACE with backslash


Copy link to this message
-
Re: REPLACE with backslash
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.*
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB