MCPcopy Index your code
hub / github.com/apache/doris-spark-connector

github.com/apache/doris-spark-connector @26.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 26.0.0 ↗ · + Follow
1,059 symbols 3,214 edges 124 files 89 documented · 8%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Spark Connector for Apache Doris

License Join the Doris Community at Slack

Spark Doris Connector

More information about compilation and usage, please visit Spark Doris Connector

License

Apache License, Version 2.0

How to Build

You need to copy customer_env.sh.tpl to customer_env.sh before build and you need to configure it before build.

git clone git@github.com:apache/doris-spark-connector.git
cd doris-spark-connector/spark-doris-connector
./build.sh

QuickStart

  1. download and compile Spark Doris Connector from https://github.com/apache/doris-spark-connector, we suggest compile Spark Doris Connector by Doris official image。
$ docker pull apache/doris:build-env-ldb-toolchain-latest
  1. the result of compile jar is like:spark-doris-connector-3.1_2.12-1.0.0-SNAPSHOT.jar

  2. download spark for https://spark.apache.org/downloads.html .if in china there have a good choice of tencent link https://mirrors.cloud.tencent.com/apache/spark/spark-3.1.2/

#download
wget https://mirrors.cloud.tencent.com/apache/spark/spark-3.1.2/spark-3.1.2-bin-hadoop3.2.tgz
#decompression
tar -xzvf spark-3.1.2-bin-hadoop3.2.tgz
  1. config Spark environment
vim /etc/profile
export SPARK_HOME=/your_parh/spark-3.1.2-bin-hadoop3.2
export PATH=$PATH:$SPARK_HOME/bin
source /etc/profile
  1. copy spark-doris-connector-3.1_2.12-1.0.0-SNAPSHOT.jar to spark jars directory。
cp /your_path/spark-doris-connector/target/spark-doris-connector-3.1_2.12-1.0.0-SNAPSHOT.jar  $SPARK_HOME/jars
  1. created doris database and table。

sql create database mongo_doris; use mongo_doris; CREATE TABLE data_sync_test_simple ( _id VARCHAR(32) DEFAULT '', id VARCHAR(32) DEFAULT '', user_name VARCHAR(32) DEFAULT '', member_list VARCHAR(32) DEFAULT '' ) DUPLICATE KEY(_id) DISTRIBUTED BY HASH(_id) BUCKETS 10 PROPERTIES("replication_num" = "1"); INSERT INTO data_sync_test_simple VALUES ('1','1','alex','123');

  1. Input this coed in spark-shell.
import org.apache.doris.spark._
val dorisSparkRDD = sc.dorisRDD(
  tableIdentifier = Some("mongo_doris.data_sync_test"),
  cfg = Some(Map(
    "doris.fenodes" -> "127.0.0.1:8030",
    "doris.request.auth.user" -> "root",
    "doris.request.auth.password" -> ""
  ))
)
dorisSparkRDD.collect()
  • mongo_doris:doris database name
  • data_sync_test:doris table mame.
  • doris.fenodes:doris FE IP:http_port
  • doris.request.auth.user:doris user name.
  • doris.request.auth.password:doris password

  • if Spark is Cluster model,upload Jar to HDFS,add doris-spark-connector jar HDFS URL in spark.yarn.jars.

spark.yarn.jars=hdfs:///spark-jars/doris-spark-connector-3.1.2-2.12-1.0.0.jar

Link:https://github.com/apache/doris/discussions/9486

  1. in pyspark,input this code in pyspark shell command.
dorisSparkDF = spark.read.format("doris")
.option("doris.table.identifier", "mongo_doris.data_sync_test")
.option("doris.fenodes", "127.0.0.1:8030")
.option("user", "root")
.option("password", "")
.load()
# show 5 lines data 
dorisSparkDF.show(5)

type convertion for writing to doris using arrow

doris spark
BOOLEAN BooleanType
TINYINT ByteType
SMALLINT ShortType
INT IntegerType
BIGINT LongType
LARGEINT StringType
FLOAT FloatType
DOUBLE DoubleType
DECIMAL(M,D) DecimalType(M,D)
DATE DateType
DATETIME TimestampType
CHAR(L) StringType
VARCHAR(L) StringType
STRING StringType
ARRAY ARRAY
MAP MAP
STRUCT STRUCT

Report issues or submit pull request

If you find any bugs, feel free to file a GitHub issue or fix it by submitting a pull request.

Contact Us

Contact us through the following mailing list.

Name Scope
dev@doris.apache.org Development-related discussions Subscribe Unsubscribe Archives

Links

Extension points exported contracts — how you extend this code

DorisCommitter (Interface)
(no doc) [4 implementers]
spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/client/write/DorisCommitter.java
RollupTreeBuilder (Interface)
(no doc) [4 implementers]
spark-load/spark-load-dpp/src/main/java/org/apache/doris/load/loadv2/dpp/RollupTreeBuilder.java
ContainerService (Interface)
(no doc) [3 implementers]
spark-doris-connector/spark-doris-connector-it/src/test/java/org/apache/doris/spark/container/instance/ContainerService.java
Recoverable (Interface)
(no doc) [2 implementers]
spark-load/spark-load-core/src/main/java/org/apache/doris/load/job/Recoverable.java
Constants (Interface)
(no doc)
spark-load/spark-load-core/src/main/java/org/apache/doris/common/Constants.java

Core symbols most depended-on inside this repo

get
called by 292
spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/rest/models/Schema.java
add
called by 120
spark-load/spark-load-dpp/src/main/java/org/apache/doris/load/loadv2/dpp/StringAccumulator.java
put
called by 117
spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/rest/models/Schema.java
size
called by 111
spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/rest/models/Schema.java
getValue
called by 87
spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/config/DorisConfig.java
name
called by 86
spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/config/ConfigOptions.java
add
called by 78
spark-load/spark-load-common/src/main/java/org/apache/doris/common/io/BitmapValue.java
withDescription
called by 48
spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/config/ConfigOption.java

Shape

Method 868
Class 174
Enum 10
Interface 7

Languages

Java100%

Modules by API surface

spark-load/spark-load-common/src/main/java/org/apache/doris/common/io/Roaring64Map.java65 symbols
spark-load/spark-load-dpp/src/main/java/org/apache/doris/load/loadv2/dpp/SparkRDDAggregator.java64 symbols
spark-load/spark-load-common/src/main/java/org/apache/doris/config/EtlJobConfig.java43 symbols
spark-load/spark-load-dpp/src/main/java/org/apache/doris/load/loadv2/dpp/ColumnParser.java34 symbols
spark-load/spark-load-core/src/test/java/org/apache/doris/client/DorisClientTest.java31 symbols
spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/client/write/AbstractStreamLoadProcessor.java26 symbols
spark-load/spark-load-dpp/src/main/java/org/apache/doris/load/loadv2/dpp/SparkDpp.java25 symbols
spark-load/spark-load-dpp/src/main/java/org/apache/doris/load/loadv2/dpp/GlobalDictBuilder.java23 symbols
spark-doris-connector/spark-doris-connector-it/src/test/java/org/apache/doris/spark/container/instance/DorisContainer.java23 symbols
spark-load/spark-load-common/src/main/java/org/apache/doris/common/io/BitmapValue.java20 symbols
spark-load/spark-load-common/src/main/java/org/apache/doris/common/io/Hll.java18 symbols
spark-doris-connector/spark-doris-connector-it/src/test/java/org/apache/doris/spark/container/AbstractContainerTestBase.java18 symbols

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add doris-spark-connector \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page