Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hadoop 构建数据模型时Mahout中的NumberFormatException_Hadoop_Mahout_Numberformatexception - Fatal编程技术网

Hadoop 构建数据模型时Mahout中的NumberFormatException

Hadoop 构建数据模型时Mahout中的NumberFormatException,hadoop,mahout,numberformatexception,Hadoop,Mahout,Numberformatexception,当我在Mahout中的ItemBasedRecommiter的训练数据中使用字符串值属性时,我得到一个NumberFormatException,它是在从文件中的数据构建FileDataModel的过程中抛出的。如果字符串属性值为“1.0”,这基本上是一个表示为字符串的数字,那么它不会抛出NumberFormatException。但如果属性值为“Washington”,则抛出NumberFormatException。 是否有任何解决方案可以将字符串属性值(如“Washington”)作为it

当我在Mahout中的ItemBasedRecommiter的训练数据中使用字符串值属性时,我得到一个NumberFormatException,它是在从文件中的数据构建FileDataModel的过程中抛出的。如果字符串属性值为“1.0”,这基本上是一个表示为字符串的数字,那么它不会抛出NumberFormatException。但如果属性值为“Washington”,则抛出NumberFormatException。 是否有任何解决方案可以将字符串属性值(如“Washington”)作为itemID/userID在培训数据中传递给Mahout中的推荐者?
我使用的是Java 1.6SE、Mahout 0.7和Hadoop 1.2。

Mahout推荐程序实际上不能处理字符串,通常会使用长数字。在将数据传递给推荐人之前,您必须将每个用户和每个项目映射到一个唯一的编号,在推荐人之后,您必须映射回原始编号

有一种变通方法,您可以使用
IDMigrator
类,但是如果我没记错的话,分布式版本中不支持这种方法,只有内存中的实现


这个来自另一个问题的答案也可能对您有所帮助()

我已经成功地使用了长数据类型和浮点数据类型。字符串不是强类型语言(如Java)中的数字。在一些数据模型中,有一些转换函数来适应Mahout的数据类型,或者您也可以使用String.toLong()或asLong()值来传递所需的值