文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spark SQL外部数据源的机制以及spark-sql的使用

2023-06-02 12:57

关注

这篇文章主要介绍“Spark SQL外部数据源的机制以及spark-sql的使用”,在日常操作中,相信很多人在Spark SQL外部数据源的机制以及spark-sql的使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spark SQL外部数据源的机制以及spark-sql的使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一.数据解释与杂项

1.External Data Source API  外部数据源

2.json也有些弊端

例如你第一次读的是id:1,name:xxx第二次id:1,name:xxx,session:222  这样代码就要改还有数据类型如果你是id:"xxx"  根本不行

3.常用外部数据源

FileSystem:HDFS,Hbase,S3,OSS 等HDFS 与 mysql join  你要用sqoop把 hdfs,mysql都要记载到hive中但是用spark 一句话就可以

4.—packages

--packages  优点,灵活,给你都拉去过来本地有的,没有的才下载的   缺点:生产中集群不能上网,maven没用解决办法:有--jars    打成jar包传上去

Spark SQL外部数据源的机制以及spark-sql的使用

5.内部内置与外部数据源

json.vsv,hdfs,hive,jdbc,s3,parquet,es,redis 等分为两大类 build-in (内置) , 3th-party(外部)spark.read.load()  默认读的是parquet文件

Spark SQL外部数据源的机制以及spark-sql的使用

6.外部添加jar包和使用实例

csv为例使用https://spark-packages.org 这个网址点homepage

Spark SQL外部数据源的机制以及spark-sql的使用

7.读写标准写法

Spark SQL外部数据源的机制以及spark-sql的使用

8.自定义约束条件

Spark SQL外部数据源的机制以及spark-sql的使用

9.支持数组等其他复杂类型像hive

Spark SQL外部数据源的机制以及spark-sql的使用

二.JDBC读写问题

1.写入时文件存在问题(已经存在)

Spark SQL外部数据源的机制以及spark-sql的使用

2.解决方式官网  加载文件数据

存在抛出异常目标存在追加,但是重跑一次可能两份,有弊端(保证不了每次处理都是一样的)目标表存在,已经存在的数据被清掉忽略模式,有了就不会再往里加了

Spark SQL外部数据源的机制以及spark-sql的使用

3.想看到你写的文件内容可以不压缩

user.select("name").write.format("json").option("compression","none").save("file:///root/test/json1/") user.select("name").write().format("json").save("/root/test/json1/")

4.mode源码展示   大写小写都一样

Spark SQL外部数据源的机制以及spark-sql的使用

5.savemode是枚举类型    java类

Spark SQL外部数据源的机制以及spark-sql的使用

6.效果一样

result.write.mode("default")result.write.mode(SaveMode.ErrorIfExists)

7.append 重跑一次有两份了

Spark SQL外部数据源的机制以及spark-sql的使用

8.官网读取JDBC数据注意一定要加driver属性

Spark SQL外部数据源的机制以及spark-sql的使用

9.属性解释官网

Spark SQL外部数据源的机制以及spark-sql的使用

10.读jdbc时候可以让多少条进一个分区,其余进那个分区可以设置

哪个字段分区最少,最多多少条几个分区一次进去多少条

Spark SQL外部数据源的机制以及spark-sql的使用

三.spark-sql的使用

1.jar包添加   注意如果报加不进去,你要加上最后面一句话,版本问题

Spark SQL外部数据源的机制以及spark-sql的使用

2.spark-sql可以直接加载hive中的表

sparksession中有个table方法直接可以把表转化为DataFrame

Spark SQL外部数据源的机制以及spark-sql的使用

3.加载jdbc  代码

Spark SQL外部数据源的机制以及spark-sql的使用

4.join 注意

 三个等号,否则报错,注意条件

Spark SQL外部数据源的机制以及spark-sql的使用

四.外部数据源的机制

1.PPD优化

Spark SQL外部数据源的机制以及spark-sql的使用

2.实现三个接口或者子类

如何更有效的读取外部数据源  Table sCAN加载外部数据源数据,定义数据的schema信息Base(抽象类必须有子类)写必须实现RelationProvicer

Spark SQL外部数据源的机制以及spark-sql的使用

3.TableScan对应PDD优化的位置

就是上图第一行什么都不管,读出什么是什么

Spark SQL外部数据源的机制以及spark-sql的使用

裁剪对应第二个

Spark SQL外部数据源的机制以及spark-sql的使用

裁剪过滤对应第三个两个图就参数不同,功能一致

Spark SQL外部数据源的机制以及spark-sql的使用

Spark SQL外部数据源的机制以及spark-sql的使用

4. 其余两项源码

实现这三个接口一个可以写schema信息一个是过滤一个可以写出去带scan是查,insert 写, base加载数据源和schema信息

Spark SQL外部数据源的机制以及spark-sql的使用

Spark SQL外部数据源的机制以及spark-sql的使用

5.JDBC源码中实现了三个接口或者子类

Spark SQL外部数据源的机制以及spark-sql的使用

到此,关于“Spark SQL外部数据源的机制以及spark-sql的使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯