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

Switch to Threaded View
Hive, mail # user - how can I escape hive CLI output


Copy link to this message
-
Re: how can I escape hive CLI output
wzc 2012-05-04, 18:18
hi Nicole,
  Thanks for your response.
  I will try your method and use '\001' as the separator(since there
contains tabs in the query results).

2012/5/5 Gesli, Nicole <[EMAIL PROTECTED]>

>  What I'd do is write the query output into local directory like this:
>
>  INSERT OVERWRITE LOCAL DIRECTORY '/mydir'
> SELECT …
>
>  The output columns will be delimited with ^A (\001). If you have to have
> tab delimited format you can replace them like this:
>
>  cat /mydir/* | tr "\001" "\t" >> /mynewdir/myfile.dat
>
>  I hope this helps.
> -Nicole
>
>   From: wzc <[EMAIL PROTECTED]>
> Reply-To: <[EMAIL PROTECTED]>
> Date: Sat, 5 May 2012 01:20:15 +0800
> To: <[EMAIL PROTECTED]>
> Subject: how can I escape hive CLI output
>
>  Hi all:
> I am new to hive, and I try to run a query through hive CLI and load the
> result into mysql.
> I try to redirect the CLI output to a tmp file and load the tmp file into
> mysql table. The problem here is that some columns of our query result may
> contains special chars, such as tab(\t), new line(\\), backslash (\) and so
> on. The result in mysql table is corrupted by these chars because the CLI
> output isn't escaped properly.
> It seems what i want is mentioned in  hive-692<https://issues.apache.org/jira/browse/HIVE-692>,
> but i can't find any solutions there.
> A dirty way I think may be escaping the query result in HQL, such like:
>
>  regexp_replace(regexp_replace(regexp_replace(result_column_1, '\\\\',
> '\\\\\\\\'), '\t', '\\\\t'), '\n', '\\\\n'),
>
>  I would like to know how to escape hive CLI output, or any alternative
> way to accomplish such job.
> Any help is appreciated.
>
>  Thanks.
>
>