Spark2.4.0和Scala2.11集成Kudu1.8.0遇到的坑

本文记录了使用Spark2.4.0、Scala2.11和Kudu1.8.0集成过程中遇到的问题及解决方案。在依赖选择上,需要使用kudu-spark_2.11-1.8.0.jar。报错是因为Kudu不是Spark的数据源,通过修改源码中的format方法解决了问题。此外,文章还列举了Spark集成Kudu的几个限制,如大写或非ASCII字符的表名和列名限制,不支持Date类型等。
摘要由CSDN通过智能技术生成

最近做实时数仓用到了spark streaming和kudu两个组件,因为资料少得可怜,折腾了一番终于是搞定了,在这里记录下期间遇到的坑

先通过Impala建张Kudu表

create table kudu_appbind_test(
md5 string,
userid string,
datetime_ string,
time_ string,
cardno string,
flag string,
cardtype string,
primary key(md5,userid,datetime_)
)
stored as kudu;

依赖选择

参考kudu官网:https://kudu.apache.org/docs/developing.html#_kudu_integration_with_spark
官网上提及了几点关键信息

  • Use the kudu-spark_2.10 artifact if using Spark with Scala 2.10. Note that Spark 1 is no longer supported in Kudu starting from version 1.6.0. So in order to use Spark 1 integrated with Kudu, version 1.5.0 is the latest to go to.
  • Use kudu-spark2_2.11 artifact if using Spark 2 with Scala 2.11.
  • kudu-spark versions 1.8.0 and below have slightly different syntax.
  • Spark 2.2+ requires Java 8 at runtime even though Kudu Spark 2.x integration is Java 7 compatible. Spark 2.2 is the default dependency version as of Kudu 1.5.0.

我这里是使用spark 2.4.0、scala 2.11、kudu 1.8.0,所以也该选择 kudu-spark_2.11-1.8.0.jar,maven中配置如下:

    <!-- https://mvnrepository.com/artifact/org.apache.kudu/kudu-spark2 -->
    <dependency>
      <groupId
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值