我爱编程

BerkeleyX: CS105x Introduction t

2018-05-14  本文已影响0人  鹏皓就是我

前言

课程是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 的第一周的课的笔记。

上一篇 下一篇

猜你喜欢

热点阅读