将hive表导出到csv时列数不正确

时间:2015-06-26 15:48:44

标签: csv hive

我有一个hive表,其中有一行包含"某些数据,其他一些数据"

基本上,数据中有一个逗号。

但是当我将包含此数据的表格导出到csv时,它会将 某些数据 视为一列, 将其他 < < / strong>数据作为另一列。 因此,对于该记录,所有内容都会移动1列。

例如,在hive数据中就像:

 col_name_1               col_name_2         col_name_3
 some data,some other       myname          mylastname

但在csv中导出后,状态为:

col_name_1    col_name_2         col_name_3       extra_not_required_col
  some data   some other data     myname          mylastname

因此数据以这种方式被破坏。 我用来将表导出到csv的代码是:

hive -e "set hive.cli.print.header=true;use colorado;select * from $name;" | sed 's/[\t]/,/g' >>intermediate_table.csv

1 个答案:

答案 0 :(得分:1)

如果在数据中的逗号周围添加双引号,则应在CSV读取器读取文件时解决此问题。您可以在配置单元中使用以下内容替换它。

select regexp_replace(colname_1,'\\,','","') as colname_1_transformed from table;

您的数据将如下所示,CSV阅读器应该能够处理:

一些数据&#34;,&#34;其他一些