2012-11-15 25 views
2

我是新來的象夫。而我想在這裏列出的標準的「甜甜圈」的例子:調試象夫迴歸

http://imiloainf.wordpress.com/2011/11/02/mahout-logistic-regression/

所以這個例子就像一個魅力。

但是,當我嘗試在我的數據集(它是一個巨大的數據集)上實現它,它不起作用。

該數據集位於一個csv文件中。除了具有很多功能(〜100)並且是1TB文件外,所有內容都是相同的。

我收到此錯誤。

bin/mahout trainlogistic --input /path/mahout_input/complete/input.csv \ 
--output mahoutmodel --target default --categories 2 --predictors O1 E1 I1 \ 
--types numeric --features 30 --passes 100 --rate 50 
Running on hadoop, using HADOOP_HOME=/opt/mapr/hadoop/hadoop-0.20.2 
No HADOOP_CONF_DIR set, using /opt/mapr/hadoop/hadoop-0.20.2/conf 
Exception in thread "main" java.lang.NullPointerException 
     at org.apache.mahout.classifier.sgd.CsvRecordFactory.firstLine(CsvRecordFactory.java:167) 
     at org.apache.mahout.classifier.sgd.TrainLogistic.main(TrainLogistic.java:75) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68) 
     at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:139) 
     at org.apache.mahout.driver.MahoutDriver.main(MahoutDriver.java:187) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.hadoop.util.RunJar.main(RunJar.java:186) 

我在做什麼錯?

你如何調試這個..什麼是錯誤?

謝謝

回答

3

我的猜測是你的輸入不存在或爲空。我會檢查/path/mahout_input/complete/input.csv真的是你的意思。

+0

它在那裏..我再次檢查了它 – Fraz

+0

我的意思是,非空,格式正確嗎? –

+0

輸入文件中的字段分隔符與mahout CSV閱讀器所期望的不同。所以我想這是不能分裂,並從第一線找到預測。 – tuxdna

3

要麼檢查您輸入的路徑,或者確保您有「只喜歡「X1」,「X2」,「X3」,「lablel」,在」數值輸入路徑的第一線..等

0

正巧我也是。

我的錯是繞過一個不正確的--target參數,它不存在於列中。特別是我標題行是

myColumn1,myColumn2,myColumn3 

和我的命令行是

亨利馬烏trainlogistic --input ./input.csv --output ./logistic_model
--target myMisTypedColumn1 --predictors myColumn2 myColumn3 - 類型www - 特點2 - 通過100 - 速度50 - 類別2

另一個提示是:不要使用「(引號)或長列名,所以你應該避免頭痛」是否mahout不喜歡我的專欄名稱?「等。

作爲對MAHOUT的反饋:錯誤消息是可怕的。在這樣一個有希望的框架中,我們絕不應該看到「NullPointerException」。