谢邀,Spark通过Jdbc来查询来自RDB的数据源。但是Spark对Jdbc的支持也是一个逐渐演变的过程,其中关键点在于版本1.3,也就是data frame的引入。在1.3以前,Spark通过Jdbc RDD来处理对对Jdbc的查询。它实现了标准的RDD接口,比如支持partition和compute。但是对很多用户来说,还是太复杂了。从1.3 起,可以直接用DF接口来做同样的事情。比如以下代码就可以完成对一个RDB表的查询
可以看到,不管数据来自什么数据源(hive,parquet, 甚至NoSql),引入data frame以后,它的代码是非常相似的,得到的结果都是dataframe,你尽可以把它们揉在一起。至于data frame内部是如何支持多种数据源的,以及如何优化,我再去看看源代码。Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有