[英]Scala - No TypeTag Available Exception when using case class to try to get TypeTag?
[英]No TypeTag available for a case class using scala 3 with spark 3
我的代碼使用 scala 3 運行火花作業
@main def startDatasetJob(): Unit =
val spark = SparkSession.builder()
.appName("Datasets")
.master("local[*]")
.getOrCreate()
case class CarRow(Name: String,
Miles_per_Gallon: Double,
Cylinders: Long,
Displacement: Double,
Horsepower: Long,
Weight_in_lbs: Long,
Acceleration: Double,
Year: Date,
Origin: String
)
implicit val carEncoder: Encoder[CarRow] = Encoders.product[CarRow]
val carsDF = spark.read
.format("json")
.option("inferSchema", "true")
.load("src/main/resources/data/cars.json")
val carDS = carsDF.as[CarRow]
但收到錯誤消息
No TypeTag available for CarRow
implicit val carEncoder: Encoder[CarRow] = Encoders.product[CarRow]
有點困惑為什么編譯器似乎無法加載案例 class,如果有人可以提供幫助
Spark 的編碼器推導依賴於 Scala 2.x 機制,其中一些已不存在。
你試過spark-scala3嗎? 它為 Scala 3 提供編碼器推導。
libraryDependencies += "io.github.vincenzobaz" %% "spark-scala3" % "0.1.3"
然后
import scala3encoders.given
(請參閱 repo 中的示例)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.