開發一個MRS Spark Python作業
更新時間 2023-08-17 17:16:12
最近更新時間: 2023-08-17 17:16:12
分享文章
本章節主要介紹DataArts Studio的開發一個MRS Spark Python作業流程。
本章節介紹如何在數據開發模塊上進行MRS Spark Python作業開發。
案例一:通過MRS Spark Python作業實現統計單詞的個數
前提條件:
具有OBS相關路徑的訪問權限。
數據準備:
- 準備腳本文件"wordcount.py",具體內容如下:
# -*- coding: utf-8 -*
import sys
from pyspark import SparkConf, SparkContext
def show(x):
print(x)
if __name__ == "__main__":
if len(sys.argv) < 2:
print ("Usage: wordcount <inputPath> <outputPath>")
exit(-1)
#創建SparkConf
conf = SparkConf().setAppName("wordcount")
#創建SparkContext 注意參數要傳遞conf=conf
sc = SparkContext(conf=conf)
inputPath = sys.argv[1]
outputPath = sys.argv[2]
lines = sc.textFile(name = inputPath)
#每一行數據按照空格拆分 得到一個個單詞
words = lines.flatMap(lambda line:line.split(" "),True)
#將每個單詞 組裝成一個tuple 計數1
pairWords = words.map(lambda word:(word,1),True)
#使用3個分區 reduceByKey進行匯總
result = pairWords.reduceByKey(lambda v1,v2:v1+v2)
#打印結果
result.foreach(lambda t :show(t))
#將結果保存到文件
result.saveAsTextFile(outputPath)
#停止SparkContext
sc.stop()
說明需要將編碼格式設置為“UTF-8”,否則后續腳本運行時會報錯。
準備數據文件“in.txt”,內容為一段英文單詞。
操作步驟 :
- 將腳本和數據文件傳入OBS桶中,如下圖。
上傳文件至OBS桶


說明本例中,wordcount.py和in.txt文件上傳路徑為:obs://obs-tongji/python/
- 創建一個數據開發模塊空作業,作業名稱為“job_MRS_Spark_Python”。
新建作業


- 進入到作業開發頁面,拖動“MRS Spark Python”節點到畫布中并單擊,配置節點的屬性。
配置MRS Spark Python節點屬性


參數設置說明:
--master
yarn
--deploy-mode
cluster
obs://obs-tongji/python/wordcount.py
obs://obs-tongji/python/in.txt
obs://obs-tongji/python/out
其中:
obs://obs-tongji/python/wordcount.py為腳本存放路徑;
obs://obs-tongji/python/in.txt為wordcount.py的傳入參數路徑,可以把需要統計的單詞寫到里面;
obs://obs-tongji/python/out為輸出參數文件夾的路徑,并且會在OBS桶中自動創建該目錄(如已存在out目錄,會報錯)。
- 單擊“測試運行”,執行該腳本作業。
- 待測試完成,執行“提交”。
- 在“作業監控”界面,查看作業執行結果。
詳見下圖:查看作業執行結果


作業日志中顯示已運行成功
詳見下圖:作業運行日志


詳見下圖:作業運行狀態


- 查看OBS桶中返回的記錄。(沒設置返回可跳過)
詳見下圖:查看OBS桶返回記錄


案例二:通過MRS Spark Python作業實現打印輸出"hello python"
前提條件:
具有OBS相關路徑的訪問權限。
數據準備:
準備腳本文件"zt_test_sparkPython1.py",具體內容如下:
from pyspark import SparkContext, SparkConf
conf = SparkConf().setAppName("master"). setMaster("yarn")
sc = SparkContext(conf=conf)
print("hello python")
sc.stop()
操作步驟:
- 將腳本文件傳入OBS桶中。
- 創建一個數據開發模塊空作業。
- 進入到作業開發頁面,拖動“MRS Spark Python”節點到畫布中并單擊,配置節點的屬性。
參數設置說明:
--master
yarn
--deploy-mode
cluster
obs://obs-tongji/python/zt_test_sparkPython1.py
其中:zt_test_sparkPython1.py 為腳本所在路徑
- 單擊“測試運行”,執行該腳本作業。
- 待測試完成,執行“提交”。
- 在“作業監控”界面,查看作業執行結果。
詳見下圖:查看作業執行結果


- 日志驗證。
運行成功后,登錄MRS manager后在YARN上查看日志,發現有hello python的輸出。
詳見下圖:查看YARN上日志

