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

免费杀毒   2024年01月29日 16:24  

这篇文章主要介绍“ SQL外部数据源的机制以及spark-sql的使用”,在日常操作中,相信很多人在Spark SQL外部数据源的机制以及spark-sql的使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答” 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与mysqljoin你要用sqoop把hdfs,mysql都要记载到hive中但是用spark一句话就可以4.—packages--packages优点,灵活,给你都拉去过来本地有的,没有的才下载的缺点:生产中集群不能上网,maven没用解决办法:有--jars打成jar包传上去5.内部内置与外部数据源json.vsv,hdfs,hive,jdbc,s3,parquet,es,redis等分为两大类build-in(内置),3th-party(外部)spark.read.load()默认读的是parquet文件6.外部添加jar包和使用实例csv为例使用https://spark-packages.org这个网址点homepage7.读写标准写法8.自定义约束条件9.支持数组等其他复杂类型像hive二.JDBC读写问题1.写入时文件存在问题(已经存在)2.解决方式官网 加载文件数据存在抛出异常目标存在追加,但是重跑一次可能两份,有弊端(保证不了每次处理都是一样的)目标表存在,已经存在的数据被清掉忽略模式,有了就不会再往里加了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源码展示 大写小写都一样5.savemode是枚举类型 java类6.效果一样result.write.mode("default")result.write.mode(SaveMode.ErrorIfExists)7.append 重跑一次有两份了8.官网读取JDBC数据注意一定要加driver属性9.属性解释官网10.读jdbc时候可以让多少条进一个分区,其余进那个分区可以设置哪个字段分区最少,最多多少条几个分区一次进去多少条三.spark-sql的使用1.jar包添加 注意如果报加不进去,你要加上最后面一句话,版本问题2.spark-sql可以直接加载hive中的表sparksession中有个table方法直接可以把表转化为DataFrame3.加载jdbc 代码4.join 注意三个等号,否则报错,注意条件四.外部数据源的机制1.PPD优化2.实现三个接口或者子类如何更有效的读取外部数据源TablesCAN加载外部数据源数据,定义数据的schema信息Base(抽象类必须有子类)写必须实现RelationProvicer3.TableScan对应PDD优化的位置就是上图第一行什么都不管,读出什么是什么裁剪对应第二个裁剪过滤对应第三个两个图就参数不同,功能一致4. 其余两项源码实现这三个接口一个可以写schema信息一个是过滤一个可以写出去带scan是查,insert写,base加载数据源和schema信息5.JDBC源码中实现了三个接口或者子类

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

域名注册
购买VPS主机

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


评论内容 (*必填):
(Ctrl + Enter提交)   

部落快速搜索栏

各类专题梳理

网站导航栏

X
返回顶部