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

設置到PYTHONPATH在執行工作流

FranPerez
新的貢獻者二世

我建立了一個工作流使用2任務。隻是為了演示的目的,我使用一個交互式集群運行工作流。

{“task_key”:“準備”,“spark_python_task”: {“python_file”:“文件:/ Workspace /回購/ devops / mlhub-mlops-dev / src / src / prepare_train。py”、“參數”(“/ dbfs /生”,“dbfs /火車”,“dbfs /列車”]},“existing_cluster_id”:“XXXX-XXXXXX-XXXXXXXXX”、“timeout_seconds email_notifications“: 0: {}}

如上所述的文檔,我設置環境變量在集群中……這是集群的json定義的摘錄:

“spark_env_vars”: {“PYSPARK_PYTHON”:“磚/ python3 / bin / python3”、“PYTHONPATH環境”:“/工作區/回購/ devops / mlhub-mlops-dev / src "}

然後,當我執行的任務類型Python,我記錄的內容sys.path我找不到在集群中配置的路徑。如果我日誌的內容os.getenv (“PYTHONPATH環境”),我什麼也得不到。看起來環境變量設置集群級別未被提升為python任務

7回複7

托馬斯
貢獻者

你在這裏是什麼文檔?

你不應該需要指定到PYTHONPATH或PYSPARK_PYTHON本節是引發“SPARK_WORKER_MEMORY”等特定環境變量。

FranPerez
新的貢獻者二世

我遵循標準的Python文檔. .Python AFAIK磚是兼容的

這種方法工作當使用“傳統”的工作,而不是在使用任務工作流

User16764241763
尊敬的貢獻者

請試試這個呢?

導入係統

sys.path.append (“/ Workspace /回購/ devops / mlhub-mlops-dev / src ")

你需要做sys.path。附加的udf如果自由需要上可用的工人。

從pyspark.sql。功能導入*

def move_libs_to_executors ():

導入係統

sys.path.append (“/ Workspace /回購/ devops / mlhub-mlops-dev / src ")

lib_udf = udf (move_libs_to_executors)

df = spark.range (100)

df。withColumn(“自由”,lib_udf()),告訴()

FranPerez
新的貢獻者二世

我已經使用這個“修複”,但這違背了好的開發實踐,因為你是硬編碼在代碼中filepath。這filepath應提供通過一個參數,這是原因,在大多數環境變量用於解決方案,因為在部署時的路徑可能會改變。

正如我之前提到的,磚的文檔後,您應該能夠使用設置環境變量spark_env_vars部分。我最初的方法有什麼問題嗎?

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

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

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

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

Baidu
map