当前位置: 首页 > news >正文

【赵渝强老师】使用TiSpark在Spark中访问TiDB

b431

TiSpark是TiDB为解决用户复杂OLAP需求而推出的产品。它借助Spark平台,同时融合TiKV分布式集群的优势,和TiDB一起为用户一站式解决HTAP的需求。下面展示了TiSpark的体系架构。
image

image.png
点击这里查看视频讲解:【赵渝强老师】使用TiSpark在Spark中访问TiDB

下面通过具体的操作步骤来演示如何使用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.conf

(2)在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:2379

(3)重启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.jar

(6)通过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.deptno=e.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任务执行的过程。
image

通过使用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 Shell

bin/spark-shell --master spark://192.168.79.10:7077 \--jars /root/tools/tispark-assembly-3.0-2.5.3.jar

(3)将部门表加载到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.deptno=e.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|
+----------+------+----+
http://www.jsqmd.com/news/461933/

相关文章:

  • CasRel实战教程:使用test.py定制化输入,支持长文本分段SPO抽取
  • 逻辑派FPGA实战:基于RGB接口实现1080P高清HDMI输出的完整方案(来自JerryTech贡献)
  • 从理论到实践:深入解析SBERT架构与sentence-transformers库的核心应用
  • 零基础上手Qwen-Image-2512-SDNQ:浏览器输入文字,一键生成惊艳图片
  • 2026年靠谱的钛钢复合板厂家推荐:耐热钢复合板/爆炸金属复合板厂家推荐及采购参考 - 行业平台推荐
  • 《构建之法》阅读笔记(三)
  • Ubuntu22.04 + Windows11 双系统安装记录及启动界面美化(双NVMe硬盘方案)
  • 告别低效繁琐!王者级的一键生成论文工具 —— 千笔·专业学术智能体
  • Qwen3-VL-8B模型微调教程:使用自定义数据提升特定场景识别能力
  • NC | 高敏等全球土壤宏基因组揭示优势植物细菌病原菌的分布及其自然抑制
  • Nano-Banana辅助C语言学习:智能代码生成与调试
  • 科研AI出了个狠角色:开源30B小模型,硬刚Gemini和Claude
  • 怎么以普通用户的账户进行程序调试
  • Epson M-G366PDG:精准惯性测量,工业级性能保障
  • 人工智能之编程进阶 Python高级: 栈和队列
  • 2026年湖北建筑资质办理:五家信誉与服务俱佳的代理机构推荐 - 2026年企业推荐榜
  • 对比一圈后 10个AI论文软件测评:自考毕业论文+开题报告高效写作工具推荐
  • 《构建之法》阅读笔记(一)
  • 哪家PCB加工专业
  • MacOS升级ruby版本
  • 为什么永远不会有语言取代 C / C++ ?
  • 2026苏州网站建设首选:亿韵商务/正规专业全解析
  • 2026年质量好的定制化等离子发生器厂家推荐:除尘除味等离子发生器厂家推荐及采购指南 - 行业平台推荐
  • 游戏骨骼系统:数字木偶的骨架奥秘
  • 【k8s】arm架构从零开始在线/离线部署k8s1.34.5+KubeSphere3.4.1 - 天行1st
  • 强烈建议尽快搞个软考证(新政策风口)
  • 响应错误: Indirect modification of overloaded element of app\model\StudentCacheModel has no effect
  • 【2025最新】基于SpringBoot+Vue的船运物流管理系统管理系统源码+MyBatis+MySQL
  • 2026年靠谱的除甲醛负离子发生器厂家推荐:高浓度负离子发生器优质供应商推荐(信赖) - 行业平台推荐
  • 【具身智能】技术群出炉!