csv - 如何使用 akka 流 alpakka 编写带有标题的 CSV 文件?
问题描述
我看不到找到它,因此我转向 slack 询问:有没有办法使用 akka stream alpakka 编写一个带有其声音的 csv 文件?
我唯一看到的是https://doc.akka.io/docs/alpakka/current/data-transformations/csv.html#csv-formatting
但是没有对 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())
推荐阅读
- r - 为什么不能使用列名向量来过滤 data.table 中的行?
- javascript - 如何解决:vs 代码扩展开发中的 svelte 中的“未捕获的 ReferenceError:require$$0 未定义”
- kotlin - 如何防止 Jetpack Compose 中不必要的重组
- beautifulsoup - BeautifulSoup:在指定文本之后获取页面上的元素?
- docker - K8s 部署无法从私有注册表中提取 docker 映像。错误:ImagePullBackOff
- selenium-chromedriver - Python 中的 Selenium Chrome 驱动程序找不到 xpath 或 id
- mongodb - 更新 mongoDB 集合中的类型时出错 - InterruptedDueToReplStateChange
- pytorch - 使用 Pytorch 的梯度矩阵 (NxWxEPOCH)
- python - plotly express line3D的轴范围误差
- python - 用考虑 groupby 前后的平均值填充包含 NaN 的单元格