取消
顯示的結果
而不是尋找
你的意思是:

永久地向係統添加python文件路徑。路徑在磚

Direo
貢獻者

如果你的筆記本比python模塊在不同的目錄或子目錄,您不能導入,直到您將其添加到python路徑。

這意味著,即使所有的用戶都是使用相同的模塊,但由於他們都是來自不同回購工作,他們不能進口,直到他們添加路徑。

我想也許可以添加模塊磚sys文件路徑。路徑永久或直到被刪除的文件。

11日回複11

Cintendo
新的貢獻者三世

對於工作節點,您可以設置火花在集群配置設置:spark.executorEnv.PYTHONPATH

但是你必須確保你添加您的工作區路徑最後工人節點需要其他係統python路徑。

這對我來說似乎是一個黑客。我希望磚能應對更加堅實的解決方案。

uzadude
新的貢獻者三世

設置“spark.executorEnv。PYTHONPATH環境“不為我工作。它看起來像火花/磚覆蓋這個地方。我使用一個簡單的python UDF打印等特性的係統。路徑”和“操作係統。環境”,沒有看到我添加了的路徑。

最後,我找到了一個出租汽車司機的方式使用“spark._sc._python_includes”。

你可以看到我的答案我的自我在這裏

Cintendo
新的貢獻者三世

謝謝@Ohad·雷維夫。我將嚐試你的方法。

spark.executorEnv。PYTHONPATH環境隻適用於工人節點不是司機節點。在集群的初始化階段,它需要設置(在火花選項卡)。集群初始化後,磚覆蓋它即使你手工做spark.conf.set。

我更喜歡設置環境不是通過代碼科迪它打破了代碼的完整性。很難執行的時候很多人工作在同一集群。我希望有一個更好的辦法在集群磚屏幕,它允許用戶添加係統。默認後路徑;或允許人們在開發過程中可編輯的安裝(pip安裝- e)。

我檢查了工人節點到PYTHONPATH使用以下,以確保它被附加。

def getworkerenv ():

進口操作係統

返回(os.getenv (PYTHONPATH))

sc = spark.sparkContext

sc.parallelize ([1])。地圖(λx: getworkerenv ()) .collect ()

uzadude
新的貢獻者三世

上麵的出租汽車司機的解決方案是使用隻有在開發自己的python模塊——這種方式我可以避免包裝whl,部署到集群中,重新啟動集群,甚至重新啟動筆記本翻譯。

我認為它不適合生產。我將使用一個whl ref工作流文件還是準備一個碼頭工人的形象。

說實話我隻是檢查回購文件夾從(dev /測試/刺激)和sys.path。附加一個適當的路徑在導入我的包。似乎工作及其涵蓋的起程拓殖提供者。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map