Я пытаюсь прочитать файл avro с Source из akka Streams.
Источник в потоках akka читает данные, такие как FileIO.FromPath (File), которые будут считывать и разделять строки на основе символа (\ n), где, как для avro, как это работает?
Поток:
object AvroFlow {
def apply(jobDate: String): Flow[GenericRecord, GenericRecord, NotUsed] = {
Flow[GenericRecord].map { rec => rec.put("date", "20190812") rec}
}
}
График:
object AvroRunner {
def build (src: Source[GenericRecord, NotUsed],
flw: Flow[GenericRecord, GenericRecord, NotUsed],
snk:Flow[GenericRecord, Future[Done])
: AvroRunner = {
new AvroRunner(srtc,flw,snk)
}
}
class AvroRunner private(src: Source[GenericRecord, NotUsed],
flw: Flow[GenericRecord, GenericRecord, NotUsed],
snk:Flow[GenericRecord, Future[Done]){
import scala.concurrent.ExecutionContext.Implicits.global
val GraphRunner = RunnableGraph.fromGraph(GraphDSL.create() {implicit builder =>
import GraphDSL.Implicits._
src ~> flw ~> snk
ClosedShape
})
}