我想在集群配置中設置到PYTHONPATH env變量:' PYTHONPATH = / dbfs / user /等等。但在司機和執行人env可能是覆蓋,我沒有看到它。
% sh echo $ PYTHONPATH環境的輸出:
' PYTHONPATH = /磚/火花/ python: /磚/火花/ python / lib / py4j-0.10.9.5-src.zip: /磚/罐/火花——司機driver-spark_3.3_2.12_deploy.jar: / WSFS_NOTEBOOK_DIR: python /磚/火花/:/磚/ python_shell”
和“導入係統;打印(sys.path)”:
' ' '
/磚/ python_shell /腳本,local_disk0 /火花c87ff3f0 - 1 - b67 - 4 ec4 - 9054 - 079 - bba1860a1 / userfiles - ea2f1344 51 - c6 - 4363 - 9112 - a0dcdff663d0’, python /磚/火花/,/磚/ / python / lib / py4j-0.10.9.5-src火花。郵政編碼”、“/磚/罐/火花——司機——driver-spark_3.3_2.12_deploy。jar”、“磚/ python_shell”、“/ usr / lib / python39。zip”、“/ usr / lib / python3.9”、“/ usr / lib / python3.9 lib-dynload’,”、“/ local_disk0 / .ephemeral_nfs / env / pythonenv - 267 a0576 e6bd - 4505 b257 - 37 a4560e4756 / lib / python3.9 /網站',' / local_disk0 / .ephemeral_nfs cluster_libraries / python / lib / python3.9 /網站',' /磚/ python / lib / python3.9 /網站”,“/ usr /地方/ lib / python3.9 / dist-packages ', ' / usr / lib / python3 / dist-packages ', ' /磚/ python / lib / python3.9 /網站/ IPython /擴展',' /根/ .ipython '
' ' '
如果我從回購它工作加上回購無處不在' /工作區/回購(電子郵件保護)/ my_repo’,然後我需要我所有的模塊直接和不方便。
請讓我知道如果有一個變通方法來設置/ dbfs的路徑在所有節點沒有醜陋的* * * * * UDF的訣竅,但直接從集群init腳本或最好的將是動態的火花。conf的財產。
init腳本不會工作,如果你是出口到PYTHONPATH env設置。磚殼覆蓋它啟動python解釋器。我們讓它工作的一種方法是如果代碼/ dbfs下,我們所做的編輯init腳本安裝,如
pip安裝- e / dbfs / some_repos_code
這將創建一個easy-install.pth下磚/ python3網站集群的初始化,這將添加到係統。司機和工人。
這種方法避免了附加係統。路徑的代碼,它打破了代碼的完整性;容易在集群級別執行。
我們也試圖做同樣的可編輯安裝以下回購/工作區但失敗了。顯然/工作區分區不是安裝在集群初始化。我們將請求數據磚成這個樣子。
更新:
終於找到了一個(出租汽車司機)解決方案!
司機我可以動態地設置係統。道路工人:
“spark._sc._python_includes.append (/ dbfs / user /等等)”
結合,在司機:
' ' '
% load_ext autoreload
% autoreload 2
' ' '
和設置:“spark.conf (“spark.python.worker。重用”,“假”)
我們有一個完全交互式火花會話能力改變python模塊代碼而不需要重啟引發會話/集群。