前言
課程是UC Berkeley的關于Spark 的課程,地址如下:
Data Science and Engineering with Apache Spark
他們這系列課分為三門,這是最基礎的一門的課堂筆記箭窜,我在前幾天剛剛開始學,因為上課總是在印象筆記上寫堡僻,覺得拿出來可能會幫到大家整理筆記甥材。我本人對NLP 和 Deep Learning顷窒,比較感興趣常挚,以后也會自己繼續(xù)學習相關課程作谭,然后分享筆記。之前對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才真正的被執(zhí)行(executed)
第四講:Apache Spark Transformations
這節(jié)課主講Spark 中 transformation 的東西汇鞭,入什么select凉唐,drop等。 有基礎的人這部分很好理解霍骄,注意的是熊榛,這些命令沒有真正的被執(zhí)行,就像是寫了個“菜譜”
諸如一些例子腕巡,這些當自己寫的時候玄坦,再查是最好的
第五講:Apache Spark Actions
之前都是 lazy evaluation, 直到action的時候,其實什么都沒做绘沉,相當于存了個 菜譜
collect 收集所有的record煎楣,所以要注意. 建議不要用collect, 用show 和 take
注意:count() 在處理group data 時候 是transform, 在處理df時,是action
.cache() 能把你想要的存起來肚菠,這樣不用每次都算一遍
注意: 在寫spark 程序時冒滩,有些思維需要變一下,因為要處理的數據量很大概而,例如把兩張表合起來這個事情,之前的思維就是 A + B 就好了,但是在spark里不要這么做慷丽,因為內存可能會溢出,舉個例子:
這樣做就是錯的鳄哭!
正確的做法應該如下:
這就是 Spark 的第一周的課的筆記要糊。