spark导入doris的几种方式


本文主要介绍通过spark导入doris的3种方式。

1.最简单的方式:jdbc

jdbc 方式需要引入mysql-connector-java的依赖


<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.48</version>
</dependency>

代码demo

	.....


    df.show()
    df
      .write
      .format("jdbc")
      .mode(SaveMode.Append)
      .option("driver", "com.mysql.jdbc.Driver")
      .option("url", "jdbc:mysql://xxxx:xx/xx?rewriteBatchedStatements=true")
      .option("batchsize", "10000")
      .option("user", "xxxx")
      .option("password", "xxxx")
      .option("isolationLevel", "NONE")
      .option("dbtable", "xxxxxx")
      .save()


注意:

一定要添加?rewriteBatchedStatements=true参数,不然导入速度会很慢。

2.Doris官方推荐的方式:Spark Doris Connector


Spark Doris Connector 可以支持通过 Spark 读取 Doris 中存储的数据,也支持通过Spark写入数据到Doris。

代码库地址:https://github.com/apache/doris-spark-connector

  • 支持从Doris中读取数据
  • 支持Spark DataFrame批量/流式 写入Doris
  • 可以将Doris表映射为DataFrame或者RDD,推荐使用DataFrame
  • 支持在Doris端完成数据过滤,减少数据传输量。

版本兼容:

Connector Spark Doris Java Scala
1.2.0 3.2, 3.1, 2.3 1.0 + 8 2.12, 2.11
1.1.0 3.2, 3.1, 2.3 1.0 + 8 2.12, 2.11
1.0.1 3.1, 2.3 0.12 - 0.15 8 2.12, 2.11

使用已经编译好的版本


可在https://repo.maven.apache.org/maven2/org/apache/doris/下载需要的jar包 但是可供选择的版本比较少,目前只有下图中的3个。

在这里插入图片描述

自行编译


编译步骤:
  1. 修改custom_env.sh.tpl文件,重命名为custom_env.sh
  2. 在源码目录下执行: sh build.sh 根据提示输入你需要的 Scala 与 Spark 版本进行编译。

编译成功后,会在 dist 目录生成目标jar包,如:spark-doris-connector-3.2_2.12-1.2.0-SNAPSHOT.jar。 将此文件复制到 SparkClassPath 中即可使用 Spark-Doris-Connector

例如,Local 模式运行的 Spark,将此文件放入 jars/ 文件夹下。Yarn集群模式运行的Spark,则将此文件放入预部署包中。

例如将 spark-doris-connector-3.2_2.12-1.2.0-SNAPSHOT.jar 上传到 hdfs 并在 spark.yarn.jars 参数上添加 hdfs 上的 Jar 包路径

  1. 上传 spark-doris-connector-3.2_2.12-1.2.0-SNAPSHOT.jar 到hdfs。
hdfs dfs -mkdir /spark-jars/
hdfs dfs -put /your_local_path/spark-doris-connector-3.2_2.12-1.2.0-SNAPSHOT.jar /spark-jars/
  1. 在集群中添加 spark-doris-connector-3.2_2.12-1.2.0-SNAPSHOT.jar 依赖。
spark.yarn.jars=hdfs:///spark-ja
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值