I have the JSON file & JSON Schema to be parsed into the AVRO Schema. I am little bit confused, do i have to write the manual AVRO schema using the data types defined in AVRO documentation.
 Or is there any automated method / function / program that can work exactly the same as required ?
            Asked
            
        
        
            Active
            
        
            Viewed 5,987 times
        
    7
            
            
        
        user2857762
        
- 81
 - 1
 - 4
 
2 Answers
4
            
            
        Well, you can try https://github.com/fge/json-schema-avro, but they say it is still not complete. So not sure it will work, though
        RadioLog
        
- 582
 - 1
 - 4
 - 20
 
3
            
            
        avro4s derives schemas at compile time from case classes:
import com.sksamuel.avro4s.SchemaFor
object Avro {
  case class MyAvroClass(s: String, i: Int)
  def main(args: Array[String]): Unit = {
    val avroSchema = SchemaFor[MyAvroClass]()
    println(avroSchema.toString(true))
  }
}
Yields:
{
  "type" : "record",
  "name" : "MyAvroClass",
  "namespace" : "tests",
  "fields" : [ {
    "name" : "s",
    "type" : "string"
  }, {
    "name" : "i",
    "type" : "int"
  } ]
}
        Yuval Itzchakov
        
- 146,575
 - 32
 - 257
 - 321