Apache spark MLlib未在Spark 2.1中保存模型数据

Apache spark MLlib未在Spark 2.1中保存模型数据,apache-spark,pyspark,Apache Spark,Pyspark,我们有一个大致如下的机器学习模型: sc = SparkContext(appName = "MLModel") sqlCtx = SQLContext(sc) df = sqlCtx.createDataFrame(data_res_promo) #where data_res promo comes from a pandas dataframe indexer = StringIndexer(inputCol="Fecha_Code", outputCol="Fecha_Index")

我们有一个大致如下的机器学习模型:

sc = SparkContext(appName = "MLModel")
sqlCtx = SQLContext(sc)
df = sqlCtx.createDataFrame(data_res_promo) 
#where data_res promo comes from a pandas dataframe
indexer = StringIndexer(inputCol="Fecha_Code", outputCol="Fecha_Index")
train_indexer = indexer.fit(df)
train_indexer.save('ALSIndexer') #This saves the indexer architecture
在我的机器中,当我以本地方式运行它时,它会生成一个文件夹ALSIndexer/,其中包含拼花地板和模型上的所有信息

当我在我们的Azure Spark集群中运行它时,它不会在主节点或从节点中生成文件夹。然而,如果我们试图重写它,它会说:

cannot overwrite folder
意思是在某个地方,但我们找不到


您是否有任何指针?

Spark默认情况下会将文件保存到分布式文件系统(可能是HDFS)。因此,这些文件在节点本身上不可见,但由于它们存在,您会收到“无法覆盖文件夹”错误消息

您可以通过HDFS轻松访问文件,将其复制到主节点。这可以通过以下命令之一在命令行中完成:

1.hadoop fs -get <HDFS file path> <Local system directory path>
2.hadoop fs -copyToLocal <HDFS file path> <Local system directory path>

也可以通过导入org.apache.hadoop.fs.FileSystem并利用其中可用的命令来完成此操作。

您是否检查了集群hdfs或等效设备上的分布式文件系统?请尝试在hdfs中提供一个绝对路径,如/home/ml/alsindexer。我想它可能正在试图写入/user/spark/当前。@Shaido是正确的,它在hdfs中,只是复制回来的问题。你愿意回答一下吗?这样你就能得到分数了?