java - Mahout : java. lang.NumberFormatException:对于输入字符串:

标签 java hadoop mahout

我正在尝试让象夫工作,但出现以下错误:

3/05/16 22:48:53 INFO mapred.MapTask: record buffer = 262144/327680
13/05/16 22:48:53 WARN mapred.LocalJobRunner: job_local_0001
java.lang.NumberFormatException: For input string: "1119"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Long.parseLong(Long.java:430)
    at java.lang.Long.parseLong(Long.java:483)
    at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:47)
    at org.apache.mahout.cf.taste.hadoop.item.ItemIDIndexMapper.map(ItemIDIndexMapper.java:31)
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)
13/05/16 22:48:54 INFO mapred.JobClient:  map 0% reduce 0%
13/05/16 22:48:54 INFO mapred.JobClient: Job complete: job_local_0001
13/05/16 22:48:54 INFO mapred.JobClient: Counters: 0
Exception in thread "main" java.io.FileNotFoundException: File does not exist: /user/eric.waite/temp/preparePreferenceMatrix/numUsers.bin
    at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.openInfo(DFSClient.java:1843)
    at org.apache.hadoop.hdfs.DFSClient$DFSInputStream.<init>(DFSClient.java:1834)
    at org.apache.hadoop.hdfs.DFSClient.open(DFSClient.java:578)

我的输入文件非常简单:(示例) userid, storyId, rating (1-5)

2840281,1119,2
2840321,1170,3
2840323,1124,5
2840371,1170,5
2840347,1157,3
2840371,1172,5
2840347,1157,5
2840358,1333,5
2840371,1172,5
2840347,1157,5

我正在尝试使用以下命令运行一个基本示例:

hadoop jar /sourcecode/mahout/mahout-distribution-0.7/mahout-core-0.7-job.jar org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -s SIMILARITY_COOCCURRENCE --input ratings.dat --output output

Java 信息​​:

java 版本“1.7.0_13”Java(TM) SE 运行时环境(构建 1.7.0_13-b20)Java HotSpot(TM) 64 位服务器 VM(构建 23.7-b01,混合模式)我在 mac 10.8 上.2

对于为什么将整数作为字符串读取并生成 NumberFormatException,有没有人有任何建议?

谢谢。

最佳答案

您可能在这里有一些非打印角色的有趣业务。当然,它显示的字符串可以很好地解析为 long。 (引号只是其错误消息的一部分。)

要明白我的意思,试试

    System.out.println(Long.parseLong("\u00001119"));

它失败并出现同样的错误,一个从表面上看令人费解的错误。

不确定如何在缺少十六进制编辑器的情况下轻松调试。

关于java - Mahout : java. lang.NumberFormatException:对于输入字符串:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16616412/

相关文章:

java - 使用 Builder 模式为客户端库注入(inject) Guice

java - Aws Lambda- “errorMessage”:可用 “No bean named 'EntityManagerFactory”

Hadoop 高可用性不工作

java - Mahout 使用 txt 文件或数据库以外的其他数据(评级)源

java - Constructor.newInstance() 在 JUnit 中与实际运行时的行为不同

java - UI/VaadinSession 超时

hadoop - Apache Pig - 无法读取包

hadoop - 如何从 HIVE 表中提取 5k 文件

hadoop - 使用mahout seqdumper转储序列文件

hadoop - 运行Apache Mahout K-Means时出错