下面通过具体的操作步骤来演示如何使用TiSpark查询TiKV中的数据。1进入Spark的conf目录生成spark-defaults.conf文件。cd /root/training/spark-3.0.0-bin-hadoop3.2/conf/ cp spark-defaults.conf.template spark-defaults.conf2在spark-defaults.conf中添加如下配置spark.sql.extensions org.apache.spark.sql.TiExtensions spark.tispark.pd.addresses 127.0.0.1:2379 spark.sql.catalog.tidb_catalog org.apache.spark.sql.catalyst.catalog.TiCatalog spark.sql.catalog.tidb_catalog.pd.addresses 127.0.0.1:23793重启Spark集群。4启动TiDB数据库集群tiup playground v8.5.1 \ --db 1 --pd 1 --kv 2 \ --tiflash 0 --without-monitor # 提示这里将会使用部门表dept和员工表emp进行演示。5启动Spark交互式命令行工具spark-shell并同时加载TiSpark的包bin/spark-shell --master spark://192.168.79.10:7077 \ --jars /root/tools/tispark-assembly-3.0-2.5.3.jar6通过TiSpark执行一个多表连接查询。scala spark.sql(use tidb_catalog) scala spark.sql(select d.dname,e.ename,e.sal from scott.dept d,scott.emp e where d.deptnoe.deptno).show # 输出的结果如下 -------------------- | dname| ename| sal| -------------------- | RESEARCH| SMITH| 800| | SALES| ALLEN|1600| | SALES| WARD|1250| | RESEARCH| JONES|2975| | SALES|MARTIN|1250| | SALES| BLAKE|2850| |ACCOUNTING| CLARK|2450| | RESEARCH| SCOTT|3000| |ACCOUNTING| KING|5000| | SALES|TURNER|1500| | RESEARCH| ADAMS|1100| | SALES| JAMES| 950| | RESEARCH| FORD|3000| |ACCOUNTING|MILLER|1300| --------------------通过Spark Web Console可以进一步查看TiSpark任务执行的过程。通过使用TiSpark也可以连接不同数据源中的数据从而进行多表连接查询。下面的示例将两张表一张表是部门表dept该表存储在文件系统中如本地文件系统或者Hadoop HDFS中另一张表是员工表emp该表存储在TiDB中。具体的操作步骤如下1查看部门表dept中的数据# cat dept.csv 10,ACCOUNTING,NEW YORK 20,RESEARCH,DALLAS 30,SALES,CHICAGO 40,OPERATIONS,BOSTON # 提示这是一个本地文件系统上的csv文件。2启动Spark Shellbin/spark-shell --master spark://192.168.79.10:7077 \ --jars /root/tools/tispark-assembly-3.0-2.5.3.jar3将部门表加载到Spark的DataFrame中scala val deptDF spark.read.format(csv).option(seq,,).schema(deptno int,dname string,loc string).load(/root/dept.csv) # 提示通过Spark可以加载本地文件系统、Hadoop HDFS、Hive等数据源中的数据。4将deptDF注册为视图。scala deptDF.createOrReplaceTempView(dept)5通过TiSpark关联TiDB数据库中的员工表emp执行多表查询。scala spark.sql(use tidb_catalog) scala spark.sql(select d.dname,e.ename,e.sal from dept d,scott.emp e where d.deptnoe.deptno).show # 输出的结果如下 -------------------- | dname| ename| sal| -------------------- | RESEARCH| SMITH| 800| | SALES| ALLEN|1600| | SALES| WARD|1250| | RESEARCH| JONES|2975| | SALES|MARTIN|1250| | SALES| BLAKE|2850| |ACCOUNTING| CLARK|2450| | RESEARCH| SCOTT|3000| |ACCOUNTING| KING|5000| | SALES|TURNER|1500| | RESEARCH| ADAMS|1100| | SALES| JAMES| 950| | RESEARCH| FORD|3000| |ACCOUNTING|MILLER|1300| --------------------
使用TiSpark在Spark中访问TiDB
发布时间:2026/5/17 17:28:05
下面通过具体的操作步骤来演示如何使用TiSpark查询TiKV中的数据。1进入Spark的conf目录生成spark-defaults.conf文件。cd /root/training/spark-3.0.0-bin-hadoop3.2/conf/ cp spark-defaults.conf.template spark-defaults.conf2在spark-defaults.conf中添加如下配置spark.sql.extensions org.apache.spark.sql.TiExtensions spark.tispark.pd.addresses 127.0.0.1:2379 spark.sql.catalog.tidb_catalog org.apache.spark.sql.catalyst.catalog.TiCatalog spark.sql.catalog.tidb_catalog.pd.addresses 127.0.0.1:23793重启Spark集群。4启动TiDB数据库集群tiup playground v8.5.1 \ --db 1 --pd 1 --kv 2 \ --tiflash 0 --without-monitor # 提示这里将会使用部门表dept和员工表emp进行演示。5启动Spark交互式命令行工具spark-shell并同时加载TiSpark的包bin/spark-shell --master spark://192.168.79.10:7077 \ --jars /root/tools/tispark-assembly-3.0-2.5.3.jar6通过TiSpark执行一个多表连接查询。scala spark.sql(use tidb_catalog) scala spark.sql(select d.dname,e.ename,e.sal from scott.dept d,scott.emp e where d.deptnoe.deptno).show # 输出的结果如下 -------------------- | dname| ename| sal| -------------------- | RESEARCH| SMITH| 800| | SALES| ALLEN|1600| | SALES| WARD|1250| | RESEARCH| JONES|2975| | SALES|MARTIN|1250| | SALES| BLAKE|2850| |ACCOUNTING| CLARK|2450| | RESEARCH| SCOTT|3000| |ACCOUNTING| KING|5000| | SALES|TURNER|1500| | RESEARCH| ADAMS|1100| | SALES| JAMES| 950| | RESEARCH| FORD|3000| |ACCOUNTING|MILLER|1300| --------------------通过Spark Web Console可以进一步查看TiSpark任务执行的过程。通过使用TiSpark也可以连接不同数据源中的数据从而进行多表连接查询。下面的示例将两张表一张表是部门表dept该表存储在文件系统中如本地文件系统或者Hadoop HDFS中另一张表是员工表emp该表存储在TiDB中。具体的操作步骤如下1查看部门表dept中的数据# cat dept.csv 10,ACCOUNTING,NEW YORK 20,RESEARCH,DALLAS 30,SALES,CHICAGO 40,OPERATIONS,BOSTON # 提示这是一个本地文件系统上的csv文件。2启动Spark Shellbin/spark-shell --master spark://192.168.79.10:7077 \ --jars /root/tools/tispark-assembly-3.0-2.5.3.jar3将部门表加载到Spark的DataFrame中scala val deptDF spark.read.format(csv).option(seq,,).schema(deptno int,dname string,loc string).load(/root/dept.csv) # 提示通过Spark可以加载本地文件系统、Hadoop HDFS、Hive等数据源中的数据。4将deptDF注册为视图。scala deptDF.createOrReplaceTempView(dept)5通过TiSpark关联TiDB数据库中的员工表emp执行多表查询。scala spark.sql(use tidb_catalog) scala spark.sql(select d.dname,e.ename,e.sal from dept d,scott.emp e where d.deptnoe.deptno).show # 输出的结果如下 -------------------- | dname| ename| sal| -------------------- | RESEARCH| SMITH| 800| | SALES| ALLEN|1600| | SALES| WARD|1250| | RESEARCH| JONES|2975| | SALES|MARTIN|1250| | SALES| BLAKE|2850| |ACCOUNTING| CLARK|2450| | RESEARCH| SCOTT|3000| |ACCOUNTING| KING|5000| | SALES|TURNER|1500| | RESEARCH| ADAMS|1100| | SALES| JAMES| 950| | RESEARCH| FORD|3000| |ACCOUNTING|MILLER|1300| --------------------