关于broker load如何导入列数目与StarRocks表不一致的csv文件

【详述】在hive表有一个csv文件,列数为26,StarRocks有表列数为24,现在想把csv文件导入StarRocks表,但是一直报column count mismatch, expect=24 real=26,是否有哪些参数可以解决这个问题呢?有使用 set column mapping ,但是好像仍然无法解决
【StarRocks版本】例如:1.19.0
【使用的命令】
load label test.demo3 (
data infile(“hdfs://xxx/test/20211103/0.1635742079.log”)
into table xxx
COLUMNS TERMINATED BY “\x01”
(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24)
SET
(
id=c1,
job_id=c2,
job_type=c3,
time_attr=c4,
priority=c5,
data_time=c6,
max_instance=c7,
retry_quota=c8,
trigger_type=c9,
trigger_user=c10,
real_run=c11,
exec_status=c12,
dri_status=c13,
time_out=c14,
retry_inst_id=c15,
business_grp=c16,
params=c17,
worker_id=c18,
create_time=c19,
un_ready_time=c20,
pending_time=c21,
ready_time=c22,
start_time=c23,
end_time=c24
)
) with broker “broker1”
(
“hadoop.security.authentication” = “kerberos”,
“kerberos_principal” = “xxx”,
“kerberos_keytab” = “xxx”
);

考虑原始数据中,由于列分隔符导致的数据切分出来列数不一致的问题,尝试更换原始文件的列分隔符

原始数据的分隔符是正确的,只是它有26列,我们希望只取24列呢

相当于要跳过某些列,是这个意思吗?

是的,不想要多出来的两列

原字段描述中吧所有字段都写全,set后边写你想要的对应关系即可。类似于(c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24,c25,c26) set(id=c1,
job_id=c2,
job_type=c3,
time_attr=c4,
priority=c5,
data_time=c6,
max_instance=c7,
retry_quota=c8,
trigger_type=c9,
trigger_user=c10,
real_run=c11,
exec_status=c12,
dri_status=c13,
time_out=c14,
retry_inst_id=c15,
business_grp=c16,
params=c17,
worker_id=c18,
create_time=c19,
un_ready_time=c20,
pending_time=c21,
ready_time=c22,
start_time=c23,
end_time=c24)

1赞

多谢大佬,已经成功了!!!!

:ok_man: