gpt4 book ai didi

hive - 如何跳过 Hive 外部表中的 CSV header ?

转载 作者:行者123 更新时间:2023-12-03 06:12:24 29 4
gpt4 key购买 nike

我正在使用 Cloudera 的 Hive 版本,并尝试通过 csv 文件创建外部表,其中包含第一列中的列名称。这是我用来执行此操作的代码。

CREATE EXTERNAL TABLE Test ( 
RecordId int,
FirstName string,
LastName string
)
ROW FORMAT serde 'com.bizo.hive.serde.csv.CSVSerde'
WITH SerDeProperties (
"separatorChar" = ","
)
STORED AS TEXTFILE
LOCATION '/user/File.csv'

示例数据

RecordId,FirstName,LastName
1,"John","Doe"
2,"Jane","Doe"

任何人都可以帮助我如何跳过第一行还是我需要添加中间步骤?

最佳答案

截至Hive v0.13.0 ,您可以使用 skip.header.line.count 表属性:

create external table testtable (name string, message string)
row format delimited
fields terminated by '\t'
lines terminated by '\n'
location '/testtable'
TBLPROPERTIES ("skip.header.line.count"="1");

对现有表使用ALTER TABLE:

ALTER TABLE tablename
SET TBLPROPERTIES ("skip.header.line.count"="1");
<小时/>

请注意,虽然它有效,但它也有自己的问题。当生成多个输出文件时,即 reducer 大于 1 时,它会跳过每个文件的第一条记录,这可能不一定是所需的行为。

关于hive - 如何跳过 Hive 外部表中的 CSV header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15751999/

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