Задача не сериализуема во время работы искровой программы - PullRequest
0 голосов
/ 13 июля 2020

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.log4j.{Level, Logger}

object UnionLogsSolution {

  def main(args: Array[String]) {
    System.setProperty("hadoop.home.dir", "C:\\hadoop\\")
    Logger.getLogger("org").setLevel(Level.ERROR)

    val conf = new SparkConf().setAppName("unionLogs").setMaster("local[*]")

    val sc = new SparkContext(conf)

    val julyFirstLogs = sc.textFile("in/nasa_19950701.tsv")
    val augustFirstLogs = sc.textFile("in/nasa_19950801.tsv")

    val aggregatedLogLines = julyFirstLogs.union(augustFirstLogs)

    val cleanLogLines = aggregatedLogLines.filter(line => isNotHeader(line))

    val sample = cleanLogLines.sample(withReplacement = true, fraction = 0.1)
    val t = System.currentTimeMillis()
    sample.coalesce(1).saveAsTextFile("C://SPARK//output"+t)
  }

  def isNotHeader(line: String): Boolean = !(line.startsWith("host") && line.contains("bytes"))
}

Ошибка: использование профиля log4j по умолчанию Spark: org / apache / spark / log4j-defaults.properties Исключение в потоке "main" org. apache .spark.SparkException: задание прервано из-за сбоя этапа: задача не сериализуемый: java .io.NotSerializableException: com.sparkTutorial.rdd.nasaApacheWebLogs.UnionLogsSolution $ Стек сериализации: - объект не сериализуемый (класс: com.sparkTutorial.rdd.nasaApacheWebLogs.UnionLogs.ApacheWebLogs.UnionLogsSolution . UnionLogsSolution$@2d0dbee5) - элемент массива (индекс: 0) в com.spark Tutorial.rdd.nasaApacheWebLogs.UnionLogsSolution $ .main (UnionLogsSolution. scala: 25 ) в com.sparkTutorial.rdd. nasaApacheWebLogs.UnionLogsSolution.main (UnionLogsSolution. scala) Вызвано: java .io.NotSerializableException: com.sparkTutorial.rdd.nasaApacheWebLogs.UnionLogsSolution $

...