⑴ 如何在python IDE spyder 中集成運行spark
local:本地單進程模式,用於本地開發測試Spark代碼
standalone:分布式集群模式,Master-Worker架構,Master負責調度,Worker負責具體Task的執行
on yarn/mesos:運行在yarn/mesos等資源管理框架之上,yarn/mesos提供資源管理,spark提供計算調度,並可與其他計算框架(如MapRece/MPI/Storm)共同運行在同一個集群之上 (使用cloudera搭建的集群就是這種情況)
on cloud(EC2):運行在AWS的EC2之上。
⑵ 機器學習實踐:如何將Spark與Python結合
可以學習一下林大貴這本書,從頭到尾教你如何使用python+spark+hadoop實現常用的演算法訓練和部署。
《Python+Spark2.0+Hadoop機器學習與大數據實戰_林大貴》
鏈接:https://pan..com/s/1VGUOyr3WnOb_uf3NA_ZdLA
提取碼:ewzf
⑶ 最新的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
⑷ 如何運行含spark的python腳本
1、Spark腳本提交/運行/部署1.1spark-shell(交互窗口模式)運行Spark-shell需要指向申請資源的standalonespark集群信息,其參數為MASTER,還可以指定executor及driver的內存大小。sudospark-shell--executor-memory5g--driver-memory1g--masterspark://192.168.180.216:7077spark-shell啟動完後,可以在交互窗口中輸入Scala命令,進行操作,其中spark-shell已經默認生成sc對象,可以用:valuser_rdd1=sc.textFile(inputpath,10)讀取數據資源等。1.2spark-shell(腳本運行模式)上面方法需要在交互窗口中一條一條的輸入scala程序;將scala程序保存在test.scala文件中,可以通過以下命令一次運行該文件中的程序代碼:sudospark-shell--executor-memory5g--driver-memory1g--masterspark//192.168.180.216:7077
⑸ spark python腳本怎麼執行
前段時間使用了一下google的博客空間,感覺也很一般,所以現在把那裡的幾篇文章轉過來。
執行python腳本只需要對python文件做如下操作即可:
在python文件里第一行加上#!
/usr/bin/python,即你的python解釋器所在的目錄。另外還有一種寫法是#!
/usr/bin/env
python
編輯完成python腳本文件後為它加上可執行許可權。例如你的python腳本文件叫做runit.py,那麼就在shell中輸入如下命令:chmod
+x
runit.py
之後直接在shell中輸入./runit.py就可以執行你的python程序了。
當然這是在Linux下的操作,如果想在windows下直接執行Python程序,就需要使用py2exe工具將python源程序編譯成exe文件了。
⑹ 如何在ipython或python中使用Spark
在ipython中使用spark
說明:
spark 1.6.0
scala 2.10.5
spark安裝路徑是/usr/local/spark;已經在.bashrc中配置了SPARK_HOME環境變數。
方法一
/usr/local/Spark/bin/pyspark默認打開的是Python,而不是ipython。通過在pyspark文件中添加一行,來使用ipython打開。
cp pyspark ipyspark
vi ipyspark
# 在最前面添加
IPYTHON=1
# 啟動
ipyspark
方法二:
通過為spark創建一個ipython 配置的方式實現。
# 為spark創建一個ipython 配置
ipython profile create spark
# 創建啟動配置文件
cd ~/.config/ipython/profile_spark/startup
vi 00-pyspark-setup.py
在00-pyspark-setup.py中添加如下內容:
import os
import sys
# Configure the environment
if 'SPARK_HOME' not in os.environ:
os.environ['SPARK_HOME'] = '/srv/spark'
# Create a variable for our root path
SPARK_HOME = os.environ['SPARK_HOME']
# Add the PySpark/py4j to the Python Path
sys.path.insert(0, os.path.join(SPARK_HOME, "python", "pyspark"))
sys.path.insert(0, os.path.join(SPARK_HOME, "python", "lib", "py4j-0.9-src.zip"))
sys.path.insert(0, os.path.join(SPARK_HOME, "python"))
啟動ipython
ipython –profile spark
測試程序
在ipython中輸入一下命令,如果下面的程序執行完後輸出一個數字,說明正確。
from pyspark import SparkContext
sc = SparkContext( 'local', 'pyspark')
def isprime(n):
"""
check if integer n is a prime
"""
# make sure n is a positive integer
n = abs(int(n))
# 0 and 1 are not primes
if n < 2:
return False
# 2 is the only even prime number
if n == 2:
return True
# all other even numbers are not primes
if not n & 1:
return False
# for all odd numbers
for x in range(3, int(n**0.5)+1, 2):
if n % x == 0:
return False
return True
# Create an RDD of numbers from 0 to 1,000,000
nums = sc.parallelize(xrange(1000000))
# Compute the number of primes in the RDD
print 「Result: 」, nums.filter(isprime).count()
方法三
將上面的程序放入test.py文件,執行命令python test.py。發現錯誤。因為沒有將pyspark路徑加入PYTHONPATH環境變數。
在~/.bashrc或/etc/profile中添加如下內容:
# python can call pyspark directly
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/pyspark:$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH
執行如下命令:
# 使配置生效
source ~/.bashrc
# 測試程序
python test.py
此時,已經能夠運行了。
⑺ spark支持python3嗎
支持。
Hadoop是對大數據集進行分布式計算的標准工具,這也是為什麼當你穿過機場時能看到」大數據(Big Data)」廣告的原因。它已經成為大數據的操作系統,提供了包括工具和技巧在內的豐富生態系統,允許使用相對便宜的商業硬體集群進行超級計算機級別的計算。