我们有一个大致如下的机器学习模型:
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 Azure集群中运行它时,它不会在主节点(也不在从节点中)生成文件夹。但是,如果我们尝试重写它,它会说:
cannot overwrite folder
哪个意味着某个地方,但我们无法找到它。
你有什么指示吗?
答案 0 :(得分:1)
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
并使用那里可用的命令来完成。