jupyter中使用pyspark連線spark叢集
阿新 • • 發佈:2018-12-29
目標:此文在jupyter中配置pyspark,並非配置pyspark的核心,而是希望在python3的核心下,使用pyspark連線spark叢集.
準備:spark單機版 , jupyter notebook ,且兩者不在同一機子上
1.安裝
在預設的jupyter notebook中是沒有pyspark包的,所以需要下載依賴包才行.
網上現在有2個包,支援python 去連線 spark . 一個是findspark,經過測試,在建立sparkcontext的時候,它會讀取jupyter的機子上的spark環境,因為這兩者不是在同一機子上,所以不行. 另外一個是pyspark包,此包同時依賴了 pypandoc 和 py4j 兩個包,需要先安裝.
ps:jupyter機子需要jdk環境
2.測試
安裝之後,可以在jupyter 中匯入pyspark包了
import pyspark
from pyspark import SparkConf, SparkContext
----
#driver意思為連線spark叢集的機子,所以配置host要配置當前編寫程式碼的機子host
conf = SparkConf().setMaster('spark_host').set('spark.driver.host','連線spark叢集的本機host').set('spark.local.ip','連線spark叢集的本機host')
sc = SparkContext.getOrCreate(conf)
sc 檢測一下此sc的資訊.可以發現成功連線到master所在的spark
ps:因為單機版spark,需要在spark/sbin 目錄下啟動start-master.sh 和 start-slave.sh spark://xxxx:7077 ,啟動master和 worker節點.不然在jupyter中提交的job是不會執行的.