Ich bin neu in Scala/Spark stack und ich versuche herauszufinden, wie man meine grundlegenden Fähigkeiten mit SparkSql zu "map" RDDs in TempTables und umgekehrt.Scala/Spark App mit "No TypeTag available" Fehler in "def main" style App
Ich habe 2 verschiedene .scala-Dateien mit dem gleichen Code: ein einfaches Objekt (mit def main ...) und ein Objekt, das App erweitert. ein
Im einfachen Objekt bekomme ich einen Fehler aufgrund von „No TypeTag verfügbar“ mit meinem Fall Klasse Log:
object counter {
def main(args: Array[String]) {
.
.
.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.createSchemaRDD
case class Log(visitatore: String, data: java.util.Date, pagina: String, count: Int)
val log = triple.map(p => Log(p._1,p._2,p._3,p._4))
log.registerTempTable("logs")
val logSessioni= sqlContext.sql("SELECT visitor, data, pagina, count FROM logs")
logSessioni.foreach(println)
}
Der Fehler in Zeile: log.registerTempTable("logs")
sagt „Nein TypeTag für Log verfügbar“.
In der anderen Datei (Objekt erweitert App) alles funktioniert gut:
object counterApp extends App {
.
.
.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.createSchemaRDD
case class Log(visitatore: String, data: java.util.Date, pagina: String, count: Int)
val log = triple.map(p => Log(p._1,p._2,p._3,p._4))
log.registerTempTable("logs")
val logSessioni= sqlContext.sql("SELECT visitor, data, pagina, count from logs")
logSessioni.foreach(println)
}
Da ich gerade erst begonnen habe, bin ich nicht zwei Punkte: 1) Warum hat die gleichen Code funktioniert in der zweiten Datei (Objekt App erweitern) während in der ersten (einfaches Objekt) bekomme ich den Fehler?
2) (und am wichtigsten) Was soll ich in meinem Code (einfache Objektdatei) tun, um diesen Fehler zu beheben, um Fallklasse und TypeTag (die ich kaum kenne) zu behandeln?
Jede Antwort, Codebeispiele werden sehr geschätzt!
Vielen Dank im Voraus
FF