![](/img/trans.png)
[英]No TypeTag available for a case class using scala 3 with spark 3
[英]Scala/Spark App with “No TypeTag available” Error in “def main” style App
我是Scala / Spark堆栈的新手,我正试图弄清楚如何使用SparkSql来测试我的基本技能,以便在TempTables中“映射”RDD,反之亦然。
我有两个不同的.scala文件,具有相同的代码:一个简单的对象(使用def main ...)和一个扩展App的对象。
在简单的对象中,我得到一个错误,因为“No TypeTag available”连接到我的case类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)
}
行中的错误: log.registerTempTable("logs")
表示“没有可用于日志的TypeTag”。
在另一个文件(对象扩展App)中一切正常:
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)
}
由于我刚刚开始,我没有得到两个要点:1)为什么相同的代码在第二个文件(对象扩展App)中工作正常,而在第一个(简单对象)中我得到错误?
2)(最重要的)我应该怎么做我的代码(简单的目标文件)来修复这个错误,以便处理案例类和TypeTag(我几乎不知道)?
每个答案,代码示例将非常感谢!
提前致谢
FF
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.