apachemahout-如何将数据集对象保存到hdfs?

e0uiprwp  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(326)

去年夏天,我们让一个实习生用java编写了一个apachemahout作业,对一些数据执行随机森林分类分析。这个作业是用apachemahout 0.7创建的。
现在,我们已经将环境升级为运行apachemahout 0.9,项目不再编译。这是不编译的单行:

DFUtils.storeWritable(conf, datasetPath, dataset)

这一行是简单的轮胎存储mahout Dataset 对象到hdfs。在mahout 0.7中 Dataset 类实现了 Hadoop.io.Writable 接口,但在版本0.9中 Dataset 类只是扩展 Object 班级。因为这个变化 storeWritable() 方法在给定 Dataset 对象作为参数。
在我的项目中 Dataset 对象表示一个文件,该文件描述我们的随机林模型试图分析的数据。如果通过命令行执行此步骤:

hadoop jar mahout-core-0.9-job.jar org.apache.mahout.classifier.df.tools.Describe -p datasets/adult.data -f datasets/adult.data.info -d N C N C N 5 C 3 N C L

这是本链接中解释的“为数据集生成文件描述符”步骤:
https://mahout.apache.org/users/classification/partial-implementation.html
总之,上面失败的一行只是尝试将描述符文件存储到hdfs上。有没有人知道在mahout 0.9中正确的方法?
如有任何建议,将不胜感激!

dgjrabp2

dgjrabp21#

您当然可以将其保存为json。

Text datasetText = new Text(dataset.toJson());
DFUtils.storeWritable(conf, datasetPath, datasetText)

您可以使用 fromJson 方法。

相关问题