【问题标题】:error when giving directory as input path to spark-itemsimilarity?将目录作为 spark-itemsimilarity 的输入路径时出错?
【发布时间】:2015-05-28 14:41:30
【问题描述】:

从终端运行 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)

提前致谢。

【问题讨论】:

  • 您使用的是什么版本的 Mahout?这是由错误的输入行引起的,例如带有空值的行。你能把你的意见发给我吗?
  • 你使用的启动命令是什么?

标签: apache-spark mahout recommendation-engine mahout-recommender


【解决方案1】:

在 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,所以考虑到您的数据,我认为您的项目和行列颠倒了。项目 ID 似乎在第 0 列,而行/用户在第 1 列(我已经在上面修复了)。

【讨论】:

    【解决方案2】:

    @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 , --itemIDColumn 1 --rowIDColumn 0

    这是我从终端执行的命令

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-06
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多