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

日誌使用mlflow引發火花管道模型,導致PythonSecurityException

Saeid_H
貢獻者

你好,

我目前使用一個簡單的pyspark管道改造我的訓練數據,適合使用mlflow.spark模型和對數模型。但我得到這個錯誤(mlflow。sklearn效果非常好,但是由於我的數據的大小我需要使用pyspark毫升庫):

org.apache.spark.api.python。PythonSecurityException:路徑mlflowdbfs: /工件?run_id = d2ecf91f0&path = / best_model / sparkml /元數據com.databricks.mlflowdbfs使用一個不可信的文件係統。MlflowdbfsFileSystem’,但是你隻允許可信文件係統管理員配置的火花:(com.databricks.s3a。S3AFileSystem、shaded.databricks.org.apache.hadoop.fs.s3a.S3AFileSystemHadoop3 shaded.databricks.azurebfs.org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem、shaded.databricks.v20180920_b33d810.org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystem shaded.m.eheci.com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem com.databricks.adl。AdlFileSystem、shaded.databricks.azurebfs.org.apache.hadoop.fs.azurebfs.SecureAzureBlobFileSystemHadoop3 shaded.databricks.V2_1_4.com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem、shaded.databricks.org.apache.hadoop.fs.azure.NativeAzureFileSystem shaded.m.eheci.com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystemHadoop3 shaded.databricks.org.apache.hadoop.fs.s3a.S3AFileSystem)

這是我使用的代碼:

從pyspark。毫升從pyspark.ml進口管道。分類從pyspark.ml進口RandomForestClassifier。功能導入VectorAssembler, StringIndexer pyspark.ml。評估從pyspark.ml進口BinaryClassificationEvaluator。優化進口CrossValidator ParamGridBuilder進口mlflow mlflow進口火花#開始一組mlflow運行和試驗mlflow.start_run (): mlflow.set_experiment(“/用戶/我的身份證/實驗”)#從CSV文件讀入數據數據= spark.read.csv (“dbfs: / FileStore /表/數據。csv”,標題= True, inferSchema = True) #預處理數據labelIndexer = StringIndexer (inputCol =“標簽”,outputCol =“indexedLabel”) .fit(數據)彙編程序= VectorAssembler (inputCols =數據。列(:1)outputCol = =“特性”)管道管道(階段= [labelIndexer,彙編程序])preprocessedData = pipeline.fit(數據).transform(數據)#將數據分為訓練集和測試集(trainingData testData) = preprocessedData.randomSplit([0.7, 0.3]) #定義模型和優化射頻hyperparameters = RandomForestClassifier (labelCol =“indexedLabel featuresCol =“特性”)paramGrid = ParamGridBuilder () \ .addGrid (rf。numTrees, 10年,20年,30 \ .addGrid (rf)。maxDepth, 5、10、15) \ .build() #使用麵積ROC評價模型評估者= BinaryClassificationEvaluator (labelCol =“indexedLabel metricName =“areaUnderROC”) #執行交叉驗證來優化hyperparameters簡曆= CrossValidator(估計量=射頻estimatorParamMaps = paramGrid,評估者=評估者,numFolds = 5) cvModel = cv.fit (trainingData) #日誌模型及其度量mlflow.spark.log_model (spark_model = cvModel。bestModel artifact_path =“best_model”)

有誰知道如何解決這個問題?

提前謝謝!

2回答2

匿名
不適用

@Saeid Hedayati:

錯誤消息表明mlflow.spark。log_model函數試圖將模型元數據保存到一個名為com.databricks.mlflowdbfs的不可信的文件係統。MlflowdbfsFileSystem,但是火花已經配置為隻允許可信的文件係統。

這個問題的一個潛在的解決方案是顯式地設置MLflow可信文件係統使用的文件係統類型S3和Azure Blob存儲。你可以通過設置MLFLOW_EXPERIMENT_STORAGE環境變量所需的文件係統類型。

例如,如果你使用S3工件商店,你可以設置MLFLOW_EXPERIMENT_STORAGE

環境變量如下:

進口os操作係統。環境(“MLFLOW_EXPERIMENT_STORAGE”) = ' s3: / /桶/ mlflow

用S3 bucket的名稱替換我的桶桶和mlflow所需的路徑。

或者,你可以試試模型元數據保存到本地文件係統,而不是DBFS路徑通過指定的本地路徑artifact_uri mlflow的參數。start_run功能:

mlflow.start_run (artifact_uri = ' /道路/ /地方/ dir): #……mlflow.spark.log_model (spark_model = cvModel。bestModel artifact_path =“best_model”)

替換/道路/ /地方/ dir到本地目錄的路徑,你想保存模型的元數據。

Vidula_Khanna
主持人
主持人

嗨@Saeid Hedayati

謝謝你發布你的問題在我們的社區!我們很高興幫助你。

幫助我們為您提供最準確的信息,請您花一些時間來回顧反應和選擇一個最好的回答了你的問題嗎?

這也將有助於其他社區成員可能也有類似的問題在未來。謝謝你的參與,讓我們知道如果你需要任何進一步的援助!

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

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

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

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

Baidu
map