从终端运行mahout spark-itemsimilarity并输入目录路径时,我遇到以下错误。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at org.apache.mahout.math.cf.SimilarityAnalysis$.cooccurrencesIDSs(SimilarityAnalysis.scala:119)
at org.apache.mahout.drivers.ItemSimilarityDriver$.process(ItemSimilarityDriver.scala:214)
at org.apache.mahout.drivers.ItemSimilarityDriver$$anonfun$main$1.apply(ItemSimilarityDriver.scala:116)
at org.apache.mahout.drivers.ItemSimilarityDriver$$anonfun$main$1.apply(ItemSimilarityDriver.scala:114)
at scala.Option.map(Option.scala:145)
at org.apache.mahout.drivers.ItemSimilarityDriver$.main(ItemSimilarityDriver.scala:114)
at org.apache.mahout.drivers.ItemSimilarityDriver.main(ItemSimilarityDriver.scala)
提前致谢。
答案 0 :(得分:3)
在Github的0.10.x分支上使用Mahout 0.10.1-SNAPSHOT,因为它不需要-D:spark ...选项。
使用目录作为输入需要一个匹配文件的模式。默认模式与HDFS“part-xxxxx”文件匹配。使用以下命令:
$ mahout spark-itemsimilarity -i /home/kulwant/data/ -fp ".*csv" -o /home/kulwant/output/ --master spark://kulwant-VirtualBox:7077 -id "," --itemIDColumn 0 --rowIDColumn 1
RowID =用户ID因此,根据您的数据,我认为您的项目和行列相反。 item id似乎在第0列,而row / user在第1列(我已在上面修复)。
答案 1 :(得分:0)
@eliasah
./mahout spark-itemsimilarity -D:spark.executor.extraClassPath=/home/kulwant/mahout/spark/target/mahout-spark_2.10-0.11.0-SNAPSHOT-dependency-reduced.jar --input /home/kulwant/data/
- output / home / kulwant / output --master spark:// kulwant-VirtualBox:7077 --inDelim, - itemIDolumn 1 --rowIDColumn 0
这是我从终端执行的命令