-Re: how can I escape hive CLI output
wzc 2012-05-04, 18:18
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.
> 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.