Ошибка при создании файла JAR: Spark Scala - PullRequest
0 голосов
/ 10 апреля 2020

У меня уже есть встроенный код для логистики c регрессии с использованием Apache spark Scala. Теперь я собираюсь создать файл JAR из этого с использованием IntelliJ IDEA. Но я получаю некоторые ошибки.

Сначала я импортировал данные с помощью файла CSV. Затем я установил модель регрессии logisti c. После этого я оценил модель. Наконец, мне нужно сохранить результаты оценки модели в текстовом файле. Я получаю сообщение об ошибке при попытке записать результаты оценки модели в файл.

Вот мой файл jar:

    import org.apache.spark.ml.classification.LogisticRegression
    import org.apache.spark.ml.feature.FeatureHasher

    import org.apache.spark.{SparkConf, SparkContext}
    import org.apache.spark.sql.SparkSession


    object class1 {
      def main(args: Array[String]): Unit = {



          val sc: SparkSession = SparkSession.builder()
            .master("local[1]")
            .appName("SparkByExample")
            .getOrCreate()



          val df2 = sc.read.options(Map("inferSchema"->"true","sep"->",","header"->"true")).csv(args(0))
        val hasher = new FeatureHasher().setInputCols(Array("x1","x2")).setOutputCol("features")
        val transformed = hasher.transform(df2)

        val lr = new LogisticRegression().setMaxIter(100).setRegParam(0.1).
setElasticNetParam(0.6).setFeaturesCol("features").setLabelCol("automatic")
        val Array(train, test) = transformed.randomSplit(Array(0.9, 0.1))

        val lrModel = lr.fit(train)
        val result = lrModel.transform(test)

         val evaluator = new MulticlassClassificationEvaluator()
         evaluator.setLabelCol("automatic")
         evaluator.setMetricName("accuracy")
         val accuracy = evaluator.evaluate(result)

        accuracy.saveAsFiles(args(1))

      }

    }

Моя ошибка заключается в следующем:

[error] C:\Spark\src\main\scala\WordCount.scala:39:14: value saveAsFiles is not a member of Double
[error]     accuracy.saveAsFiles(args(1))
[error]              ^
[error] one error found
[error] (Compile / compileIncremental) Compilation failed

Эта ошибка подразумевает, что я не могу использовать saveAsFiles с двойным объектом.

Может кто-нибудь помочь мне понять, как это исправить?

Спасибо

1 Ответ

0 голосов
/ 10 апреля 2020

accuracy больше не DataFrame. Это просто простой дубль. Вы можете использовать обычный Scala, чтобы сохранить его в файл, например

Files.write(..., accuracy.toString)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...