gpt4 book ai didi

csv - 将包含带引号的值的表导出到配置单元中的本地 csv

转载 作者:可可西里 更新时间:2023-11-01 14:49:05 26 4
gpt4 key购买 nike

我正在尝试将表导出到配置单元中的本地 csv 文件。

INSERT OVERWRITE LOCAL DIRECTORY '/home/sofia/temp.csv' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
select * from mytable;

问题是一些值包含换行符“\n”,结果文件变得非常困惑。

在 Hive 中导出时,是否有任何方法可以将值括在引号中,以便 csv 文件可以包含特殊字符(尤其是换行符)?

最佳答案

一种可能的解决方案是使用 Hive CSV SerDe(序列化器/反序列化器)。它提供了一种方法来指定自定义定界符、引号和转义字符

限制:

它不处理嵌入的换行符

可用性:

CSV SerdeHive 0.14 中可用和更大。

背景:

CSV SerDe 基于 https://github.com/ogrodnek/csv-serde ,并在 HIVE-7777. 中添加到 Hive 分布中

用法:

SerDe 适用于大多数CSV 数据,但不处理嵌入换行符。要使用 SerDe,请指定完全限定的类名 org.apache.hadoop.hive.serde2.OpenCSVSerde .

原始文档可在 https://github.com/ogrodnek/csv-serde 获得.

CREATE TABLE my_table(a string, b string, ...)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = "\t",
"quoteChar" = "'",
"escapeChar" = "\\"
)
STORED AS TEXTFILE;

默认分隔符、引号和转义字符(如果未指定)

DEFAULT_ESCAPE_CHARACTER \
DEFAULT_QUOTE_CHARACTER "
DEFAULT_SEPARATOR ,

引用:Hive csv-serde

关于csv - 将包含带引号的值的表导出到配置单元中的本地 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33254183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com