sparkpython書籍
Ⅰ 給師弟師妹們學習數據挖掘的一些建議
給師弟師妹們學習數據挖掘的一些建議
看著剛進實驗室的師弟師妹們的迷茫,雖然也與他們進行過一些零散的交談,但是都不夠系統。因此,根據自己的經歷給出學習數據挖掘的一些建議,大家可以根據自身的情況,具體問題具體分析,作為參考。希望在上一屆的基礎上,走的更深,走的更遠。
一. 讀研與數據挖掘基礎
首先介紹一下大家都比較關心的幾個問題,包括我們組的研究方向是什麼,論文相關問題,大數據與工作相關問題,上海戶口問題幾個方面。
1. 我們組的研究方向是什麼
我們組大的研究方向是數據挖掘,論文的研究方向是推薦演算法。要注意大的研究方向,論文的研究方向與工作方向的區別和聯系。
2. 論文相關問題
讀研究生免不了會思考一個問題,讀研的意義是什麼?我自己認為讀研的最大意義是訓練自己系統化的嚴謹的分析思維能力。在導師給定論文研究方向後,如何確立更細的研究方向,如何檢索資料,如何閱讀英文論文,如何提出自己的創新點,如何做實驗,如何寫論文,如何修改論文,如何投稿,如何退修,如果是國際會議,還要去做英文口頭報告,與同行交流等,這些問題都是需要自己去思考的。
3. 大數據與工作相關問題
數據挖掘屬於大數據專業嗎?當然屬於。現在大數據找工作相對還是比較理想的。關鍵是要學習哪些課程呢?以前給大家推薦了很多的書籍,但是效果卻恰恰相反,因為實在太多了根本看不完,更不知閱讀書籍的順序,淺嘗輒止,最後一本書也沒有看完,研究生就結束了。
(1)最低保障書籍
無論將來做什麼,熟練掌握一門編程語言,一個資料庫,數據結構,演算法都是必備的。
《高性能Mysql》
《數據結構與演算法分析:java語言描述》
《演算法》:http://book.douban.com/subject/19952400/
(2)python與機器學習
《集體智慧編程》
《社交網站的數據挖掘與分析》
《數據挖掘:概念與技術》
Python官方文檔:https://www.python.org/
Scikit-Learn官方文檔:http://scikit-learn.org/stable/
(3)Java相關書籍
《Java開發實戰經典》
《Java Web開發實戰經典》
《Java虛擬機規范》
Java SE:http://docs.oracle.com/javase/8/docs/api/
Java EE:http://docs.oracle.com/javaee/6/api/
(4)Hadoop與Spark書籍
《大數據日知錄:架構與演算法》
《Hadoop權威指南》
《大數據Spark企業級實戰》
《Scala編程》
Hadoop官方網站:http://spark.apache.org/
Spark官方網站:http://spark.apache.org/
Scala官方網站:http://www.scala-lang.org/
說明:認准目標,耐住性子,一步一步往前走。要把上面推薦的書籍硬著頭皮讀完,數據挖掘基本也就算是入門了。
4. 上海戶口問題
上海戶口屬於積分制,如果想要在校期間就拿到,那麼唯一的方式就是參數每年的研究生數據建模比賽,並且獲獎。獲獎比例還是很高的。其實,好好學習Python,買本數學建模的書籍看完,看幾篇近些年來的獲獎論文,比賽時硬著頭皮鑽研一道題目並且寫好論文,基本上都可以獲獎。
二. 數據挖掘進階
數據挖掘涉及多個方向,但是通常從數學統計,資料庫和數據倉庫,機器學習三個方向來進行研究。當我想學習一個方向的時候,最希望做的事情就是讓別人給我列出一個書單。因為我也會給你們列出一個書單,讓你們慢慢研究吧。
1. 數學統計
(1)理論數學:復變函數,實變函數,泛函分析,拓撲學,積分變換,微分流形,常微分方程,偏微分方程等。
(2)應用數學:離散數學(集合,邏輯,組合,代數,圖論,數論),具體數學,張量分析,數值計算,矩陣論,逼近論,運籌學,凸優化,小波變換,時間序列分析等。
(3)概率:概率論,測度論,隨機過程等。
(4)統計:統計學,多元統計,貝葉斯統計,統計模擬,非參數統計,參數統計等。
2. 資料庫和數據倉庫
《資料庫系統概念》
《資料庫系統實現》
《數據倉庫》
《分布式系統:概念與設計》
3. 機器學習
通信原理;數據挖掘;機器學習;統計學習;自然語言處理;信息檢索;模式識別;人工智慧;圖形圖像;機器視覺;語音識別;機器人學等。(這方面的經典書籍都可以看看,後面慢慢補充)
4. 其它書籍
(1)Linux
(2)網路原理,編譯原理,組成原理,
(3)JVM
(4)UML
(5)軟體工程
(6)設計模式
(7)雲計算與Docker
(8)並行計算
(9)需求分析
三. 學習與方法
作為一名軟體工程師,需要熟練掌握的工具,如下所示:
(1)博客
除了學習之外,更要思考和總結,把還沒有忘卻的記憶緩存序列化成為文字,記錄在博客中。
(2)語言
大數據常用的語言包括Java,Scala,Python。如果一定要選擇精通一門語言,自己選擇Scala,同時深度學習JVM。(3)開發工具
自己選擇IntelliJ IDEA用於Java和Scala的開發,Eclipse用於Python的開發。
(4)GitHub
每天都要堅持編程,主動參與開源項目。
(5)Linux
工作常用的是Ubuntu 12.04 LTS。
由於時間原因,上面總結的還比較粗糙,算是第一個版本吧,後面還會繼續深度總結和完善。
Ⅱ 數據挖掘方向,Python中還需要學習哪些內容
就題論題,還包括:
1. Python 資料庫連接庫,例如MySQL 連接庫的應用,這決定你的數據從哪裡來。這裡面涉及到sql語法和資料庫基本知識,是你在學習的時候必須一起學會的。
2. Python 做基本數據計算和預處理的庫,包括numpy ,scipy,pandas 這三個用得最多。
3. 數據分析和挖掘庫,主要是sklearn,Statsmodels。前者是最廣泛的機器學習庫,後者是側重於統計分析的庫。(要知道統計分析大多時候和數據挖掘都錯不能分開使用)
4. 圖形展示庫。matpotlib,這是用的最多的了。
說完題主本身 要求,樓上幾位說的對,你還需要一些關於數據挖掘演算法的基本知識和認知,否則即使你調用相關庫得到結果,很可能你都不知道怎麼解讀,如何優化,甚至在什麼場景下還如何選擇演算法等。因此基本知識你得了解。主要包括:
1.統計學相關,看看深入淺出數據分析和漫畫統計學吧,雖然是入門的書籍,但很容易懂。
2.數據挖掘相關,看看數據挖掘導論吧,這是講演算法本身得書。
剩下的就是去實踐了。有項目就多參與下項目,看看真正的數據挖掘項目是怎麼開展的,流程怎樣等。沒有項目可以去參加一些數據挖掘或機器學習方面的大賽,也是增加經驗得好方法。
Ⅲ 有什麼關於 Spark 的書推薦
《大數據Spark企業級實戰》本書共包括14章,每章的主要內容如下。
第一章回答了為什麼大型數據處理平台都要選擇SPARK
。為什麼spark如此之快?星火的理論基礎是什麼?spark如何使用專門的技術堆棧來解決大規模數據處理的需要?第二章回答了如何從頭構建Hadoop集群的問題。
如何構建基於Hadoop集群的星火集群?如何測試火星的質量?附錄從spark的角度解釋了Scala,並詳細解釋了Scala函數編程和面向對象編程。
Ⅳ 最新的spark支持python的什麼版本
兩種方法:
使用 spark-submit 解釋執行python腳本
使用 python 解釋執行python腳本
1. 使用Spark-submit解釋執行python腳本
python腳本中需要在開頭導入spark相關模塊,調用時使用spark-submit提交,示例代碼如下:
===========================================================
"""odflow.py"""
from pyspark import SparkContext
fileDir = "/TripChain3_Demo.txt"
# sc = SparkContext("local", "ODFlow")
sc = SparkContext("spark://ITS-Hadoop10:7077", "ODFlow")
lines = sc.textFile(fileDir)
# python不能直接寫多行的lambda表達式,所以要封裝在函數中
def toKV(line):
arr = line.split(",")
t = arr[5].split(" ")[1].split(":")
return (t[0]+t[1]+","+arr[11]+","+arr[18],1)
r1 = lines.map( lambda line : toKV(line) ).receByKey(lambda a,b: a+b)
# 排序並且存入一個(repartition)文件中
r1.sortByKey(False).saveAsTextFile("/pythontest/output")
===========================================================
發布命令為:
spark-submit \
--master spark://ITS-Hadoop10:7077 \
odflow.py
2. 使用 python 解釋執行python腳本
直接用python執行會出現錯誤:
ImportError: No mole named pyspark
ImportError: No mole named py4j.java_gateway
缺少pyspark和py4j這兩個模塊,這兩個包在Spark的安裝目錄里,需要在環境變數里定義PYTHONPATH,編輯~/.bashrc或者/etc/profile文件均可
vi ~/.bashrc # 或者 sudo vi /etc/profile
# 添加下面這一行
export PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH
# 使其生效
source ~/.bashrc # 或者 sudo source /etc/profile
然後關閉終端,重新打開,用python執行即可
python odflow.py
Ⅳ 大數據入門書籍有哪些
1、《Hadoop權威指南》
現在3.1版本剛剛發布,但官方並不推薦在生產環境使用。作為hadoop的入門書籍,從2.x版本開始也不失為良策。
本書從Hadoop的緣起開始,由淺入深,結合理論和實踐,全方位地介紹Hadoop這一高性能處理海量數據集的理想工具。剛剛更新的版本中,相比之前的版本增加了介紹YARN , Parquet , Flume, Crunch , Spark的章節,非常適合於Hadoop 初學者。
2、《Learning Spark》
《Spark 快速大數據分析》是一本為Spark 初學者准備的書,它沒有過多深入實現細節,而是更多關註上層用戶的具體用法。不過,本書絕不僅僅限於Spark 的用法,它對Spark 的核心概念和基本原理也有較為全面的介紹,讓讀者能夠知其然且知其所以然。
3、《Spark機器學習:核心技術與實踐》
以實踐方式助你掌握Spark機器學習技術。本書採用理論與大量實例相結合的方式幫助開發人員掌握使用Spark進行分析和實現機器學習演算法。通過這些示例和Spark在各種企業級系統中的應用,幫助讀者解鎖Spark機器學習演算法的復雜性,通過數據分析產生有價值的數據洞察力。