将配置单元 table 导出到 csv 时列数不正确

Incorrect number of columns while exporting hive table to csv

我有一个配置单元 table,其中有一行包含 "Some data, some other data"

等字段

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

但是当我将包含此数据的 table 导出到 csv 时,它将 Some Data 视为一列并且 一些其他数据作为另一列。 因此,对于该记录,所有内容都移动了 1 列。

例如,在蜂巢数据中是这样的:

 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

因此数据以这种方式损坏。 我使用 toexport table 到 csv 的代码是:

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

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

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

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

一些数据","一些其他