首先看下hive建表,这里的字段类型,直接关系导ck的配置:

CREATE EXTERNAL TABLE ol_ck_int
(user_id           bigint       comment '会员id',three_xx_name     string       comment '三级xx名称',xx_name           string       comment 'xx项',xx_value          int          comment 'xx项取值'
)comment '用户标签表'
PARTITIONED BY(dt string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION '...';

ck建表:

DROP TABLE IF EXISTS default.ol_ck_int;
CREATE TABLE default.ol_ck_int
(user_id       UInt64,three_xx_name String,xx_name       String,xx_value      Int16
)
ENGINE = MergeTree
PARTITION BY three_class_name
ORDER BY (three_xx_name,xx_name, xx_value)
SETTINGS index_granularity = 8192;

导入ck的配置信息 .conf:

cat>label_int.conf<<EOF
spark {spark.app.name = "WaterdropTest001"#executor的数量(数据量大可以适当增大)spark.executor.instances = 10#每个excutor核数(并行度,数据量大可以适当增大到服务器核数一半以下,尽量不要影响clickhouse)spark.executor.cores = 1#每个excutor内存(不能小于512m)spark.executor.memory = "3g"
}input {hdfs {#hive表对应的hdfs路径,这里hive采用了分区表path = "hdfs://hadoopcluster/ol/ol_ck_int/dt=${date}"result_table_name = "ol_ck_int"#这里hive建表指定TEXTFILE存储类型,因为测试这里配置orc不支持format = "text"}}filter {split {#根据分隔符切割后给每个列的名字fields = ["user_id", "three_xx_name","xx_name","xx_value"]#这里指的是hive的字段分隔符,不然无法切割delimiter = "\\\001"}convert {#因为刚切割后所有字段类型为string,如果不转化就会报错#可以转化的类型string、integer、long、float、double和booleansource_field = "user_id"new_type = "long"}convert {source_field = "xx_value"new_type = "long"}
}output {clickhouse {host = "100.18.31.117:8123"database = "default"table = "ol_ck_int"fields = ["user_id","three_xx_name", "xx_name", "xx_value"]username = "xx"password = "xxx"retry = 2}
}
EOF

执行报错信息:

Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

分析原因可能是 convert 配置的类型有问题。
改配置:

  convert {#因为刚切割后所有字段类型为string,如果不转化就会报错#可以转化的类型string、integer、long、float、double和booleansource_field = "user_id"new_type = "integer"}convert {source_field = "xx_value"new_type = "integer"}

执行报错信息:

Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

再次改配置:

  convert {#因为刚切割后所有字段类型为string,如果不转化就会报错#可以转化的类型string、integer、long、float、double和booleansource_field = "user_id"new_type = "long"}convert {source_field = "xx_value"new_type = "integer"}

执行成功。

分析可得:

1.hive中字段经Waterdrop 刚切割后所有字段类型为string,如果不转化就会报错,即hive字段原来是string的不需要动,如果不是,比如bigint 、int ,就需要配置convert ,其中一个不转就会报错:java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer;

2.convert 配置的new_type 要看ck对应字段的类型,UInt64 对应 long,Int16 对应 integer;
关于这一点也是这次踩坑踩出来的,不知道哪里有相关文档供参考,欢迎大家多多讨论,提供宝贵意见,谢谢!

通过Waterdrop 进行hdfs导入ck测试踩坑相关推荐

  1. oracle vm 加载ova,vmware导入ova文件踩坑记小结

    问题来源 众所周知,所有的网络行为都会产生相应的网络流量,那么所有的网络攻击行为也有其对应的流量特点,那么是否能根据流量特点进而分析出其对应的是什么攻击行为呢? 我在虚拟机上使用vulnhub的靶场环 ...

  2. Spotmicroai机械狗初上手——组装测试踩坑(二)

    Spotmicroai机械狗初上手--组装测试踩坑 说明 spotmicroai/utilities文件夹 log.py config.py queues.py run.sh spotmicroai/ ...

  3. Wormhole流程搭建测试踩坑总结(二)

    Wormhole 是宜信技术研发中心开发的一个一站式流式处理云平台解决方案.Wormhole 面向大数据流式处理项目的开发管理运维人员,致力于提供统一抽象的概念体系,直观可视化的操作界面,简单流畅的配 ...

  4. vscode导入本地jar包_go导入本地包踩坑(已解决!)

    当我想要仿照C语言的大程序结构,来写go语言的程序,出现下面的报错(ps:系统是windows,文本编辑器(或称IDE)是vscode) 然后vscode还会时不时地在右下角出现这样地提示信息 对于g ...

  5. node-media-server win环境安装架测试 踩坑记

    01   因为老师的项目中需要很多流媒体模块的东西,接触到 Node-Media-Server 这个流媒体服务器,这个国人开发的组件,之前还有SRS也是的.记录一下问题和效果.   本子是win7,之 ...

  6. 测试踩坑:手机号一键登录的手机双卡运营商问题

    H2在v8.3.0.0迭代新增了手机号一键登录功能,除了单卡常规测试外,还有双卡测试时发现的问题留个记录. 前提: xr手机,是iphone手机双卡双待或者iphone全面屏手机,手机只插1张联通卡 ...

  7. 测试踩坑 - 当已有接口(或数据库表中)新增字段时,都需要注意哪些测试点?

    最新在测试的时候,遇到了几个典型问题,都是在原有接口(或数据库表中)进行需求迭代时,出现的问题.我稍微总结一下,作为后续测试的经验教训. 问题一.数据库表中新增字段,但开发将这几个字段设置成了非空字段 ...

  8. sqoop2从hdfs导入mysql_sqoop2相关实例:hdfs和mysql互相导入(转)

    摘要:超详细讲解Sqoop2应用与实践,从hdfs上的数据导入到postgreSQL中,再从postgreSQL数据库导入到hdfs上.详细讲解创建link和创建job的操作,以及如何查看sqoop2 ...

  9. python导入类有红线_python踩坑系列之导入包时下划红线及报错“No module named”问题...

    python踩坑系列之导入包时下划红线及报错"No module named"问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下 ...

最新文章

  1. 太久没来了,好尴尬呀
  2. SQLite 日期类型(转)
  3. XCOM串口助手打印不出数据
  4. Ntdsutil对活动目录的管理
  5. Python 包管理工具解惑
  6. 《分布式操作系统》知识点(8~14)二
  7. 银华基金:用小型机的群狼战术保驾护航!
  8. 数据挖掘与数据化运营实战. 3.10 信用风险模型
  9. 源码追踪,解决Could not locate executable null\bin\winutils.exe in the Hadoop binaries.问题
  10. linux 写地址 hex,你怎么理解Hex文件? (扩展地址记录)
  11. Android集成百度语音识别API
  12. 库伦法-锂电池容量计量
  13. 架构师的“功夫在诗外”之二
  14. html公差符号输入,CAD特殊符号输入:公差符号、直径符号等
  15. 腾讯云 短信验证码 php,php腾讯云短信验证码
  16. 求职 | 百度笔试题
  17. mysql数据库应用(六)----操作表的约束
  18. 手把手教你绘制积分动图
  19. 树莓派4B Raspbian系统常用Linux 命令及快捷键
  20. C语言复习03(小甲鱼版本)

热门文章

  1. FPGA实现CSI-2 解码MIPI视频 2line 720P分辨率 OV5647采集 提供工程源码和技术支持
  2. His医疗系统行业短信/语音通知解决方案
  3. 2019“欢乐春节·魅力中国”惊艳洛杉矶
  4. R语言使用plot函数可视化数据、使用type参数自定义设置可视化的类型(数据点和线关系的类型)、设置type参数为s则为阶梯状显示
  5. 聪明的头脑+有趣的灵魂 揭秘腾讯云最暖智能酒店解决方案
  6. 【报告分享】2021年中国IT服务供应链数字化升级研究报告-艾瑞咨询(附下载)
  7. lg-1 x 怎么算_婚宴邀请微信怎么写 婚宴邀请微信范文大全
  8. 认沽期权看图轻松理解
  9. 二叉堆及其在A*算法中的应用
  10. 【HTML】简易计算器