前言
课程是UC Berkeley的关于Spark 的课程,地址如下:
Data Science and Engineering with Apache Spark
他们这系列课分为三门,这是最基础的一门的课堂笔记,我在前几天刚刚开始学,因为上课总是在印象笔记上写,觉得拿出来可能会帮到大家整理笔记。我本人对NLP 和 Deep Learning,比较感兴趣,以后也会自己继续学习相关课程,然后分享笔记。之前对Machine Learning 有粗略的涉及,希望以后通过积累,慢慢变强。
在网上学了这门课,看这个笔记才有帮助,我觉得。
第一讲:先是入门介绍 什么是big data?
先粗略讲一下这么多data从哪里来
User generate content
Health and Scientific Computing
data from network, computer network…)
Web server
Internet of Things
然后就是基本概念的介绍, 如data model, schema
Structure Spectrum
A data model is a collection of concepts for describing data.
A schema is a description of a particular collection of data using a given data model.
如图
Unstructured data, 像纯文本文件 没有schema(摘要),像什么微博啊,图片,视频
Semi-Structured data : XML,被标注的视频等等
Structured Data(RDB 就是一个例子),但是只有不到20%,会越来越少,因为unstructured data 越来越多。
我们倾向于处理 structured or semi-structured data. 所以我们需要 ETL ,把unstructed data 转换成我们喜欢处理的。
第二讲:Analysis, Big Data and Apache Spark
先介绍传统的 分析工具, r, pandas 什么的, 但是局限性在,他只在一个机器上跑。
大数据带来的问题
数据成长的比计算速度快
Storage 和 相对停滞的计算速度,已经成为一个计算的瓶颈了
例如,硬盘的读写速度
解决方法, 分布式储存和计算。 partition后存在内存里,是spark的关键
4. Spark 的 组成结构
当跑spark 程序时,一个driver program, 和很多个worker program
第三讲:Apache Spark DataFrames
这一讲,开始说spark中基础的东西。
首先,什么是 DataFrames
Spark 中 有两种 operations:
transformations
actions
transformations 是 ‘lazy‘的,这些命令 直到action才真正的被执行(executed)
第四讲:Apache Spark Transformations
这节课主讲Spark 中 transformation 的东西,入什么select,drop等。 有基础的人这部分很好理解,注意的是,这些命令没有真正的被执行,就像是写了个“菜谱”
诸如一些例子,这些当自己写的时候,再查是最好的
第五讲:Apache Spark Actions
之前都是 lazy evaluation, 直到action的时候,其实什么都没做,相当于存了个 菜谱
collect 收集所有的record,所以要注意. 建议不要用collect, 用show 和 take
注意:count() 在处理group data 时候 是transform, 在处理df时,是action
.cache() 能把你想要的存起来,这样不用每次都算一遍
注意: 在写spark 程序时,有些思维需要变一下,因为要处理的数据量很大,例如把两张表合起来这个事情,之前的思维就是 A + B 就好了,但是在spark里不要这么做,因为内存可能会溢出,举个例子:
这样做就是错的!
正确的做法应该如下:
这就是 Spark 的第一周的课的笔记。
网友评论