我想磚集群上執行一個當地PySpark腳本通過dbx實用程序來測試如何傳遞參數到python在磚在開發當地的工作。然而,我通過的測試參數沒有被讀出於某種原因。有人能幫忙嗎?本指南後,但有點不清楚,缺乏很好的例子。https://dbx.readthedocs.io/en/latest/quickstart.html發現了這個,但也不清楚:我怎麼能比得到傳遞的參數傳遞和磚的工作嗎
磚手冊非常不清楚。
我的PySpark腳本:
導入係統n = len (sys.argv)打印(“總參數傳遞:n)打印(“腳本名”,sys.argv[0])打印(“\ nArguments通過:“結束= " ")範圍(1,n):我的打印(sys。argv[我],結束= " ")
dbx deployment.json:
{“默認”:{“工作”:[{“名稱”:“參數”,“spark_python_task”: {“python_file”:“指標測試。py”},“參數”:[“test-argument-1”、“test-argument-2”]}]}}
dbx執行命令:
dbx執行\——cluster-id = <有所> \——工作=參數\部署文件= conf /部署。json \——no-rebuild \——沒有包
輸出:
(參數)user@735參數% /bin/zsh /用戶/用戶/ g-drive / git /參數/參數。sh (dbx][2022-07-26 10:34:33.864]使用提供從項目概要文件[dbx][2022-07-26 10:34:33.866]發現從提供者ProfileEnvConfigProvider身份驗證配置,驗證[dbx][2022-07-26 10:34:33.866]發現從提供者ProfileEnvConfigProvider身份驗證配置,驗證成功的[dbx][2022-07-26 10:34:33.866]配置文件默認將用於部署[dbx][2022-07-26 10:34:35.897]執行工作:在集群環境的默認參數沒有(id: 0513 - 204842 - 7 - b2r325u) [dbx][2022-07-26 10:34:35.897]沒有重建會完成,請確保包分布在dist文件夾[dbx][2022-07-26 10:34:35.897]使用提供的部署文件conf /部署。json (dbx][2022-07-26 10:34:35.899]準備集群互動接受工作[dbx][2022-07-26 10:34:35.997]集群就緒[dbx][2022-07-26 10:34:35.998]準備執行上下文(dbx)(2022-07-26 10:34:36.534)現有上下文是活躍的,使用它[dbx][2022-07-26 10:34:36.992]要求文件要求。執行後不提供三種,沒有任何附加包[dbx][2022-07-26 10:34:36.992]包是殘疾人通過——沒有包,隻有將使用代碼入口點(dbx)(2022-07-26 10:34:37.161)工藝參數(dbx)(2022-07-26 10:34:37.449)工藝參數——做[dbx][2022-07-26 10:34:37.449]開始入口點文件執行[dbx][2022-07-26 10:34:37.767]命令成功執行總參數傳遞:1 python腳本名參數傳遞:[dbx][2022-07-26 10:34:37.768]命令執行完(參數)user@735參數%
請幫助
謝謝你休伯特。高興地說,這個例子了。我能算出來。
糾正deployment.json:
{“默認”:{“工作”:[{“名稱”:“參數”,“spark_python_task”: {“python_file”:“指標測試。py”、“參數”:[“test1”、“test2”]}}]}}
Python代碼的輸出在最初,上圖:
總參數傳遞:3 python腳本名參數傳遞:test1 test2
出於某種原因,我返回Python腳本的名字是“Python”,但實際的名字是“parameter-test.py”。知道為什麼磚/ DBX的嗎?任何方式獲得實際的腳本的名字從sys.argv[0]嗎?
注:再一次,沒有足夠清楚,例子的工作手冊(隻是一個反饋,把它就其價值而言)。
你可以通過參數使用
dbx發射——參數
如果你想定義它在部署模板請盡量遵循完全磚API 2.1模式/ JobsCreate https://docs.m.eheci.com/dev-tools/api/latest/jobs.html操作(例如參數在一個任務,任務數組,兩者都是失蹤在json)
{“默認”:{“工作”:[{“名稱”:“一個多任務的工作”,“任務”:[{“task_key”:“Sessionize”、“描述”:“從事件提取會話數據”,“depends_on”: []“spark_python_task”: {“python_file”:“com.databricks。Sessionize”、“參數”:[”——數據”、“dbfs: / / /數據。json "]}] ....
謝謝你休伯特。高興地說,這個例子了。我能算出來。
糾正deployment.json:
{“默認”:{“工作”:[{“名稱”:“參數”,“spark_python_task”: {“python_file”:“指標測試。py”、“參數”:[“test1”、“test2”]}}]}}
Python代碼的輸出在最初,上圖:
總參數傳遞:3 python腳本名參數傳遞:test1 test2
出於某種原因,我返回Python腳本的名字是“Python”,但實際的名字是“parameter-test.py”。知道為什麼磚/ DBX的嗎?任何方式獲得實際的腳本的名字從sys.argv[0]嗎?
注:再一次,沒有足夠清楚,例子的工作手冊(隻是一個反饋,把它就其價值而言)。