我建立了一個工作流使用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任務
請試試這個呢?
導入係統
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()),告訴()