如何使用akka stream alpakka编写带有标题的CSV文件?

如何使用akka stream alpakka编写带有标题的CSV文件?,csv,akka-stream,alpakka,Csv,Akka Stream,Alpakka,我找不到它,因此我转向slack问:有没有一种方法可以使用akka流alpakka编写一个csv文件,其中包含它的音频 我唯一看到的是 但没有反向操作,csv以某种方式映射 我的用例是,我需要读取几个csv文件,过滤它们的内容,并将干净的内容写入相应的文件orginalcsvfilename-cleanded.csv中 如果不直接支持,有什么建议吗?您可以这样做 def csv_header(elem:T):List[String] = ??? def csv_line(elem:T):List

我找不到它,因此我转向slack问:有没有一种方法可以使用akka流alpakka编写一个csv文件,其中包含它的音频

我唯一看到的是

但没有反向操作,csv以某种方式映射

我的用例是,我需要读取几个csv文件,过滤它们的内容,并将干净的内容写入相应的文件orginalcsvfilename-cleanded.csv中


如果不直接支持,有什么建议吗?

您可以这样做

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()) 

你可以这样做

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())