【问题标题】:How to write CSV file with headers using akka stream alpakka?如何使用 akka 流 alpakka 编写带有标题的 CSV 文件?
【发布时间】:2020-07-09 22:25:36
【问题描述】:
【问题讨论】:
标签:
csv
akka-stream
alpakka
【解决方案1】:
你可以这样做
def csv_header(elem:T):List[String] = ???
def csv_line(elem:T):List[String] = ???
def firstTrueIterator(): Iterator[Boolean] = (Iterator single true) ++ (Iterator continually false)
def firstTrueSource: Source[Boolean, _] = Source fromIterator firstTrueIterator
def processData(elem: T, firstRun: Boolean): List[List[String]] = {
if (firstRun) {
List(
csv_header(elem),
csv_line(elem)
)
} else {
List(csv_line(elem))
}
}
val finalSource = source
.zipWith(firstTrueSource)(processData)
.mapConcat(identity)
.via(CsvFormatting.format())