【问题标题】:NumberFormatException in Mahout while building data model构建数据模型时 Mahout 中的 NumberFormatException
【发布时间】:2013-07-30 15:43:53
【问题描述】:

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

【问题讨论】:

    标签: hadoop mahout numberformatexception


    【解决方案1】:

    Mahout 推荐器并不真正使用字符串,通常您会使用长数字来代替。在将数据传递给推荐器之前,您必须将每个用户和每个项目映射到一个唯一的编号,在推荐器之后,您必须映射回原始数据。

    有一种解决方法,您可以使用 IDMigrator 类,但如果我没记错的话,分布式版本不支持此功能,只有内存实现。

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

    【讨论】:

      【解决方案2】:

      我在 Long 和 Float 数据类型方面取得了成功。字符串不是强类型语言(如 Java)中的数字。在某些数据模型中,有适合 Mahout 数据类型的转换函数,或者您也可以使用 String.toLong() 或 asLong() 值来传递所需的值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-18
        • 2011-11-30
        • 1970-01-01
        • 2019-09-23
        • 2013-05-26
        • 1970-01-01
        • 2012-10-26
        • 2020-08-12
        相关资源
        最近更新 更多