scala – 使用Akka Streams读取CSV文件
发布时间:2020-12-16 09:03:37 所属栏目:安全 来源:网络整理
导读:我正在读一个csv文件.我正在使用Akka Streams执行此操作,以便我可以创建要在每一行执行的操作的图表.我已经启动并运行了以下玩具示例. def main(args: Array[String]): Unit = { implicit val system = ActorSystem("MyAkkaSystem") implicit val materializ
我正在读一个csv文件.我正在使用Akka Streams执行此操作,以便我可以创建要在每一行执行的操作的图表.我已经启动并运行了以下玩具示例.
def main(args: Array[String]): Unit = { implicit val system = ActorSystem("MyAkkaSystem") implicit val materializer = ActorMaterializer() val source = akka.stream.scaladsl.Source.fromIterator(Source.fromFile("a.csv").getLines) val sink = Sink.foreach(println) source.runWith(sink) } 两种Source类型对我来说并不容易.这是惯用的还是有更好的方法来写这个? 解决方法
实际上,akka-streams提供了直接从文件读取的功能.
FileIO.fromPath(Paths.get("a.csv")) .via(Framing.delimiter(ByteString("n"),256,true).map(_.utf8String)) .runForeach(println) 这里,runForeach方法是打印行.如果您有适当的接收器来处理这些行,请使用它而不是此功能.例如,如果要将行拆分为’并打印其中的总字数: val sink: Sink[String] = Sink.foreach(x => println(x.split(",").size)) FileIO.fromPath(Paths.get("a.csv")) .via(Framing.delimiter(ByteString("n"),true).map(_.utf8String)) .to(sink) .run() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- WebService及实例
- twitter-bootstrap – 使用browserify加载twitter bootstra
- shell编程学习笔记2--自定义变量,系统变量,语系变量,位置
- AngularJS在双花括号表示法中呈现HTML
- 当x.toString失败时,ScalaRunTime.stringOf(x)如何不失败?
- twitter-bootstrap – Bootstrap.js,Bootstrap.min.js,Boot
- angularjs – 带控制器的AngularStrap关闭模态
- shell – 如何在mutt中更改发件人的名称或电子邮件地址?
- angularjs中的排序方式
- Docker-compose使用主机环境变量