#smile
Вопрос:
У меня есть scala 2.11 и JDK1.8, работающий под управлением smile 2.4.0 на CDH. Я хотел бы обучить регрессионную модель с улыбкой, и ниже приведен код.
import smile.regression.{gbm,randomForest,cart,ols} import smile.data.DataFrame import smile.data.formula._ import smile.util._ val arrX=lisSamp.map(x=gt;Array(x._4.toDouble,x._5.toDouble,x._6.toDouble,x._7.toDouble,x._8.toDouble)).toArray val arrY=lisSamp.map(x=gt;Array(x._3)).toArray val sdfX=DataFrame.of(arrX) val sdfY=DataFrame.of(arrY,"Y") val sdfFull=sdfX.merge(sdfY) //train model val forForm:Formula="Y"~"V1" "V2" "V3" randomForest(forForm,sdfFull,50,3,10,50,100,1) cart(forForm,sdfFull,10,100,5) gbm(forForm, sdfFull) ols(forForm, sdfFull,"qr")
При импорте smile.util._ это дало ошибку ниже, но она прошла при импорте во 2-й раз.
error: missing or invalid dependency detected while loading class file 'package.class'. Could not access term typesafe in package com, because it (or its dependencies) are missing. Check your build definition for missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) A full rebuild may help if 'package.class' was compiled against an incompatible version of com. error: missing or invalid dependency detected while loading class file 'package.class'. Could not access type LazyLogging in value com.scalalogging, because it (or its dependencies) are missing. Check your build definition for missing or conflicting dependencies. (Re-run with `-Ylog-classpath` to see the problematic classpath.) A full rebuild may help if 'package.class' was compiled against an incompatible version of com.scalalogging.
Фрейм данных улыбки выглядит следующим образом
scalagt; sdfFull res40: smile.data.DataFrame = [V1: double, V2: double, V3: double, V4: double, V5: double, Y: double] --- --- --- --- --- --- | V1| V2| V3| V4| V5| Y| --- --- --- --- --- --- | 2| 0| 21| 3| 65| 1| | 2| 0| 21| 3| 70| 1| | 2| 0| 21| 3| 75| 1| | 2| 0| 21| 3| 80| 1| | 2| 0| 21| 3| 85| 1| | 2| 0| 21| 3| 90| 1| | 2| 0| 21| 3| 95| 1| | 2| 0| 21| 3|100| 1| | 2| 0| 21| 3|105| 1| | 2| 0| 21| 3|110| 1| --- --- --- --- --- --- 156 more rows...
Я получил это сообщение об ошибке при попытке запустить регрессию gbm, cart, randomForest, ols. Я сделал что-нибудь не так? Похоже, он не нашел какой-то посылки.
java.lang.NoClassDefFoundError: smile/util/package$ at smile.util.package$time$.apply(package.scala:64) at smile.regression.package$.cart(package.scala:249) ...
Я запустил это, чтобы запустить spark-shell
spark-shell --master yarn --deploy-mode client --jars "/.../jar/lib/smile-core-2.4.0.jar,/.../jar/lib/smile-scala_2.11-2.4.0.jar,/.../jar/lib/smile-data-2.4.0.jar,/.../jar/lib/smile-math-2.4.0.jar"