gpt4 book ai didi

hadoop - 如何将用双引号括起来并用制表符分隔的 CSV 数据加载到 HIVE 表中?

转载 作者:可可西里 更新时间:2023-11-01 14:08:41 27 4
gpt4 key购买 nike

我正在尝试从 csv 文件加载数据,其中的值用双引号 '"' 括起来,制表符分隔 '\t' 。但是当我尝试将其加载到配置单元时,它不会抛出任何错误并且数据加载时没有任何错误但我认为所有数据都被加载到单个列中并且大多数值显示为 NULL。下面是我的建表语句。

CREATE TABLE example
(
organization STRING,
order BIGINT,
created_on TIMESTAMP,
issue_date TIMESTAMP,
qty INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
ESCAPED BY '"'
STORED AS TEXTFILE;

输入文件样本;-

 "Organization" "Order"  "Created on"   "issue_date"   "qty"
"GB" "111223" "2015/02/06 00:00:00" "2015/05/15 00:00:00" "5"
"UK" "1110" "2015/05/06 00:00:00" "2015/06/1 00:00:00" "51"

和 Load 语句将数据推送到配置单元表。

 LOAD DATA INPATH '/user/example.csv' OVERWRITE INTO TABLE example

可能是什么问题以及如何忽略文件的 header 。如果我从 create 语句中删除 ESCAPED BY '"',它会加载到相应的列中,但所有值都用双引号引起来。如何从值中删除双引号并忽略文件标题?

最佳答案

您现在可以使用 OpenCSVSerde它允许您定义分隔符并轻松转义周围的双引号:

CREATE EXTERNAL TABLE example (
organization STRING,
order BIGINT,
created_on TIMESTAMP,
issue_date TIMESTAMP,
qty INT
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = "\t",
"quoteChar" = "\""
)
LOCATION '/your/folder/location/';

关于hadoop - 如何将用双引号括起来并用制表符分隔的 CSV 数据加载到 HIVE 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30637536/

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