【慕课网实战】九、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
即席查询
普通查询
Load Data
1) RDD DataFrame/Dataset
2) Local Cloud(HDFS/S3)
将数据加载成RDD
val masterLog = sc.textFile("file:///home/hadoop/app/spark-2.1.0-bin-2.6.0-cdh5.7.0/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-hadoop001.out")
val workerLog = sc.textFile("file:///home/hadoop/app/spark-2.1.0-bin-2.6.0-cdh5.7.0/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-hadoop001.out")
val allLog = sc.textFile("file:///home/hadoop/app/spark-2.1.0-bin-2.6.0-cdh5.7.0/logs/*out*")
masterLog.count
workerLog.count
allLog.count
存在的问题:使用使用SQL进行查询呢?
import org.apache.spark.sql.Row
val masterRDD = masterLog.map(x => Row(x))
import org.apache.spark.sql.types._
val schemaString = "line"
val fields = schemaString.split(" ").map(fieldName => StructField(fieldName, StringType, nullable = true))
val schema = StructType(fields)
val masterDF = spark.createDataFrame(masterRDD, schema)
masterDF.show
JSON/Parquet
val usersDF = spark.read.format("parquet").load("file:///home/hadoop/app/spark-2.1.0-bin-2.6.0-cdh5.7.0/examples/src/main/resources/users.parquet")
usersDF.show
spark.sql("select * from parquet.`file:///home/hadoop/app/spark-2.1.0-bin-2.6.0-cdh5.7.0/examples/src/main/resources/users.parquet`").show
Drill 大数据处理框架
从Cloud读取数据: HDFS/S3
val hdfsRDD = sc.textFile("hdfs://path/file")
val s3RDD = sc.textFile("s3a://bucket/object")
s3a/s3n
spark.read.format("text").load("hdfs://path/file")
spark.read.format("text").load("s3a://bucket/object")
val df=spark.read.format("json").load("file:///home/hadoop/app/spark-2.1.0-bin-2.6.0-cdh5.7.0/examples/src/main/resources/people.json")
df.show
TPC-DS
spark-packages.org
【慕课网实战】九、以慕课网日志分析为例 进入大数据 Spark SQL 的世界的更多相关文章
- 【慕课网实战】八、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
用户行为日志:用户每次访问网站时所有的行为数据(访问.浏览.搜索.点击...) 用户行为轨迹.流量日志 日志数据内容: 1)访问的系统属性: 操作系统.浏览器等等 2)访问特征:点击的ur ...
- 以慕课网日志分析为例-进入大数据Spark SQL的世界
下载地址.请联系群主 第1章 初探大数据 本章将介绍为什么要学习大数据.如何学好大数据.如何快速转型大数据岗位.本项目实战课程的内容安排.本项目实战课程的前置内容介绍.开发环境介绍.同时为大家介绍项目 ...
- 以某课网日志分析为例 进入大数据 Spark SQL 的世界
第1章 初探大数据 本章将介绍为什么要学习大数据.如何学好大数据.如何快速转型大数据岗位.本项目实战课程的内容安排.本项目实战课程的前置内容介绍.开发环境介绍.同时为大家介绍项目中涉及的Hadoop. ...
- 【慕课网实战】七、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
用户: 方便快速从不同的数据源(json.parquet.rdbms),经过混合处理(json join parquet), 再将处理结果以特定的格式(json.parquet)写回到 ...
- 【慕课网实战】六、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
DataFrame它不是Spark SQL提出的,而是早起在R.Pandas语言就已经有了的. A Dataset is a distributed collection of data:分布式的 ...
- 【慕课网实战】五、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
提交Spark Application到环境中运行spark-submit \--name SQLContextApp \--class com.imooc.spark.SQLContextApp \ ...
- 【慕课网实战】四、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
文本文件进行统计分析:id, name, age, city1001,zhangsan,45,beijing1002,lisi,35,shanghai1003,wangwu,29,tianjin... ...
- 【慕课网实战】三、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
前置要求: 1)Building Spark using Maven requires Maven 3.3.9 or newer and Java 7+ 2)export MAVEN_OPTS=&qu ...
- 【慕课网实战】二、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
MapReduce的局限性: 1)代码繁琐: 2)只能够支持map和reduce方法: 3)执行效率低下: 4)不适合迭代多次.交互式.流式的处理: 框架多样化: 1)批处理(离线):MapRed ...
随机推荐
- EF 一个简单的使用
原文:https://www.cnblogs.com/leotsai/p/entity-framework-doesnt-need-additional-repository.html 花猫.NET的 ...
- kvm动态添加硬盘
1.创建硬盘. qemu-img create -f qcow2 /data/data_root/vm-images/xxxx.qcow2 20G 2.添加硬盘 方式1.动态添加: virsh att ...
- jmeter入门案例(二)
jmeter入门简介(一)下载及元件介绍https://www.cnblogs.com/wish5714/p/9714930.html jmeter典型的http请求示例 业务场景 银行卡收单交易,模 ...
- Go语言编程读书笔记:Go channel(2)
单向channel 概念 单向channel是只能用于发送或者接收数据,channel本身必然是同时支持读写,否则根本没法用.假如一个channel只能读,那么肯定只会是空的,因为你没有机会向里面写数 ...
- Java基础第一天(标识符、变量)
一.标识符 Java对各种变量.类.方法命名时的字符序列. 凡自己可以起名字的地方都叫标识符. 标识符特点: 1.26个英文字母大小写,0~9,$,_ 组成. 2.数字不可以做开头. 3.不可以使用关 ...
- pandas和re中正则表达式的意思
这里()有两种意思,第一个就是表示匹配范围,另外一个就是输出这个匹配 下面那条语句就是告诉程序,是输出整个句子,“?:”非获取匹配,匹配冒号后的内容但不获取匹配结果,不进行存储供以后使用.
- UnitZ Battlegrounds beta5 - Unity吃鸡类型游戏模版 源码 仿绝地求生
Requires Unity 2018.2.6 or higher.The first battle royale game starter kit on Asset Store, all syste ...
- 100-days: twenty-six
Title: The Guardian(英国卫报) view on the Notre Dame fire: we share France's terrible loss Notre Dame 巴黎 ...
- byte -> int
传送门 传送门2 以下copy: int i = 0; i += ((b[0] & 0xff) << 24); i += ((b[1] & 0xff) <&l ...
- EasyUI的datagrid加载数据去掉遮罩
转自:https://blog.csdn.net/why15732625998/article/details/77977570 代码: $(".datagrid-mask").r ...