spark-SQL理论

  • SparkSQL都支持哪些数据源;
    数据库
    Hive
    Lucene:全文检索;解决索引模糊匹配like 前面加%不起作用;
    纯代码编程(java),硬编码
    Lucene Query Language:
    ElasticSearch:6.6系统支持SQL语句;
  • 为什么要学习SparkSQL?
    JavaSE,这一套程序的运行是在内存中;重启以后结果全部丢失;
    JavaIO:把结果存储到硬盘中;把一套程序运行的结果存储到磁盘上;(txt,log,xls或者二进制文件)
    把单机变成多机;(网络编程)
    为什么要学习数据库;(数据量大比着xls,csv),查询方便,CRUD);(多人通过网络共同编辑数据);登记个人信息;

SQL语句是目前为止最好学的编程语言;

为什么要学习大数据(是多台服务器一块工作);(数据量无上限),计算的时候不卡死,只不过时间有点长;(hadoop生态圈,拿空间换取时间);presto+spark:拿内存来换取时间)

Mr:输入文件变成输出文件的过程吗?
完成可以使用sql来实现;输入文件就是(一张一张的表),输出文件(使用sql语句查询出来的结果)

Spark:RDD:RDD里面放的是输入文件,经过了一系列的RDD最终变成了想要的结果;(一系列的RDD可以理解为SQL语句的各个语法),最终的结果可以理解为输出文件;

问题:RDD学完了,为什么要学习RDD:RDD运行的速度超级快;
RDD也有输入文件,RDD也是把输入文件变成输出文件的过程;
是否可以像hive操作mr一样,也提供一套sql语句来操作RDD呢(当然可以的)

  • SparkSQL
    让开发人员使用SQL语句来操作RDD;Spark操作SQL语句的架子(框架代码)
    SparkSql,DataFrame(RDD),DataSet(RDD);RDD是父类,DataSet是子类;
    来源例如:结构化数据文件、Hive中的表、外部数据库或现有的RDD

保存模式
在这里插入图片描述
列存储和行存储
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_35968375/article/details/88911257