Я новичок в Avro и уже знаю, что это фантастическая библиотека, я хотел бы помочь мне приспособить файл Avro к определенному классу.
Я не уверен, почему я разместил первую запись записи, это моя первая схема, и я попробовал, объединив (с небольшим размышлением) какую-то схему, которую я видел в sof / internet.
Класс:
import org.apache.tika.metadata.Metadata
class ParsedData extends Serializable {
var extractedText: String = _
var outlinks: Set[String] = Set.empty[String]
var metadata: Metadata = new Metadata()
var headers: Map[String, AnyRef] = Map.empty
}
и моя связанная с ним схема avro выглядит следующим образом
{
"type": "record",
"name": "AvroSparkler",
"namespace": "edu.usc.irds.sparkler.avro",
"fields": [
{
"name": "ParsedDataKafka",
"type": {
"type": "record",
"name": "ParsedDataKafka",
"namespace": "edu.usc.irds.sparkler.avro",
"fields": [
{
"name": "outlinks",
"type": {
"type": "array",
"items": {
"type":"string"
}
}
},
{
"name": "metadata",
"type": {
"type": "record",
"name": "metadata",
"namespace": "edu.usc.irds.sparkler.avro",
"fields": [
{
"name": "metadata",
"type": {
"type":"map",
"values": {
"type": "string"
}
}
}
]
}
},
{
"name": "headers",
"type": {
"type": "map",
"values": {
"type": "string"
}
}
}
]
}
}
]
}