當前位置:首頁 » 編程語言 » python調用spark

python調用spark

發布時間: 2022-06-14 17:39:44

『壹』 機器學習實踐:如何將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

『叄』 如何在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

『肆』 如何在Python IDE spyder 中集成運行spark

  1. local:本地單進程模式,用於本地開發測試Spark代碼

  2. standalone:分布式集群模式,Master-Worker架構,Master負責調度,Worker負責具體Task的執行

  3. on yarn/mesos:運行在yarn/mesos等資源管理框架之上,yarn/mesos提供資源管理,spark提供計算調度,並可與其他計算框架(如MapRece/MPI/Storm)共同運行在同一個集群之上 (使用cloudera搭建的集群就是這種情況)

  4. on cloud(EC2):運行在AWS的EC2之上。

『伍』 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文件了。

『陸』 如何用Python寫spark

1.RDD是PariRDD類型
def add1(line):
return line[0] + line[1]
def add2(x1,x2):
return x1 + x2
sc = SparkContext(appName="gridAnalyse")
rdd = sc.parallelize([1,2,3])
list1 = rdd.map(lambda line: (line,1)).map(lambda (x1,x2) : x1 + x2).collect() #只有一個參數,通過匹配來直接獲取(賦值給裡面對應位置的變數)
list1 = rdd.map(lambda line: (line,1)).map(lambda x1,x2 : x1 + x2).collect() #錯誤,相當於函數有兩個參數
list2 = rdd.map(lambda line: (line,1)).map(lambda line : line[0] + line[1]).collect() #只有一個參數,參數是Tuple或List數據類型,再從集合的對應位置取出數據
list3 = rdd.map(lambda line: (line,1)).map(add1).collect() #傳遞函數,將Tuple或List類型數據傳給形參
list4 = rdd.map(lambda line: (line,1)).map(add2).collect() #錯誤,因為輸入只有一個,卻有兩個形參
當RDD是PairRDD時,map中可以寫lambda表達式和傳入一個函數。
a、寫lambda表達式:
可以通過(x1,x2,x3)來匹配獲取值;或者使用line獲取集合,然後從集合中獲取。
b、傳入函數
根據spark具體的transaction OR action 操作來確定自定義函數參數的個數,此例子中只有一個參數,從形參(集合類型)中獲取相應位置的數據。

『柒』 python開發spark環境該如何配置,又該如何操作

1)輸入:welcome="Hello!"回車

再輸入:printwelcome或者直接welcome回車就可以看到輸出Hello!

2)

[html]viewplain
welcome="hello"
you="world!"
printwelcome+you


輸出:helloworld!

以上使用的是字元串,變數還有幾種類型:數,字元串,列表,字典,文件。其他的和別的語言類似,下面先講下列表:

3)

[html]viewplain
my_list=[]//這個就產生了一個空的列表。然後給它賦值
my_list=[1,2]
printmy_list
my_list.append(3)
printmy_list

4)字典:

[html]viewplain
contact={}
contact["name"]="shiyuezhong"
contact["phone"]=12332111

5)結合列表和字典:

[html]viewplain
contact_list=[]
contact1={}
contact1['name']='shiyuezhong'
contact1['phone']=12332111
contact_list.append(contact1)
contact2={}
contact2['name']='buding'
contact2['phone']=88888888
contact_list.append(contact2)

『捌』 如何運行含spark的python腳本

~spark$ bin/spark-submit first.py
-----------first.py-------------------------------
from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("local").setAppName("My App")
sc = SparkContext(conf = conf)
lines = sc.textFile("first.py")
pythonLines = lines.filter(lambda line: "Python" in line)
print "hello python"
print pythonLines.first()
print pythonLines.first()
print "hello spark!"
---------------------------------------------------
hello python
pythonLines = lines.filter(lambda line: "Python" in line)
pythonLines = lines.filter(lambda line: "Python" in line)
hello spark!

到spark的安裝目錄下/bin 下面 spark-submit ***.py 即可

『玖』 spark 與python 怎麼交互的

前段時間使用了一下google的博客空間,感覺也很一般,所以現在把那裡的幾篇文章轉過來。 執行python腳本只需要對python文件做如下操作即可: 在python文件里第一行加上#! /usr/bin/python,即你的python解釋器所在的目錄。另外還有一種寫法是#! ...

『拾』 python可以直接在spark上運行嗎

在機器學習和數據挖掘演算法實現中: 1、R擁有豐富的演算法包,且對最新的演算法響應較快,但是致命的缺點是每個包都需要進行學習,學習成本相對來說比加大,而Python的scikit-learn包封裝了所有演算法,實現函數一致

熱點內容
光介質存儲 發布:2024-05-07 01:32:25 瀏覽:350
蘋果平板ipad密碼忘了怎麼辦 發布:2024-05-07 01:17:16 瀏覽:704
伏吟的演算法 發布:2024-05-07 00:51:48 瀏覽:830
安卓手機上的照相鍵在哪裡 發布:2024-05-07 00:51:45 瀏覽:606
ftp如何刪除頑固文件 發布:2024-05-07 00:50:57 瀏覽:251
idea文件夾顯示 發布:2024-05-07 00:30:04 瀏覽:250
怎麼把ps存儲為ai 發布:2024-05-07 00:30:03 瀏覽:274
參數內存緩存 發布:2024-05-07 00:28:54 瀏覽:747
android狀態欄高度 發布:2024-05-07 00:24:42 瀏覽:242
資料庫主文件 發布:2024-05-07 00:14:41 瀏覽:609