0

我想从 scala 案例类生成一个 avro 模式。

假设我有以下 scala 案例类:

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 类,但我需要做相反的事情。

在此先感谢您的帮助

4

1 回答 1

1

Avro4s包含从case class.

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任务。

于 2019-01-31T22:45:35.013 回答