我想从scala case类生成一个avro模式。
假设我有以下scala case类:
case class User(name : String, favorite_number: Int, favorite_color: String)
相关的avro模式为:
{"namespace": "example.avro",
"type": "record",
"name": "User",
"fields": [
{"name": "name", "type": "string"},
{"name": "favorite_number", "type": "int"},
{"name": "favorite_color", "type": "string"}
]
}
有没有一种方法可以在构建时生成avro scehma?例如使用sbt吗? 我看到sbt-avro4s允许从avro模式中构建scala类,但我需要做相反的事情。
预先感谢您的帮助
答案 0 :(得分:1)
Avro4s
包含根据case class
生成Avro模式的逻辑。
https://github.com/sksamuel/avro4s#schemas
以下为项目示例:
import com.sksamuel.avro4s.AvroSchema
case class User(name : String, favorite_number: Int, favorite_color: String)
val userSchema = AvroSchema[User]
希望可以提供足够的资源来开始执行sbt
任务。