如何解决遍历具有不同类型的集合并写入镶木地板
我有很多桌子,我需要将它们保存为实木复合地板格式。我试图使用这个lib https://github.com/mjakubowski84/parquet4s并最终遇到问题。
[error] found : akka.stream.scaladsl.Sink[shapeless.HNil,scala.concurrent.Future[akka.Done]]
[error] required: akka.stream.Graph[akka.stream.SinkShape[Product with Serializable],?]
可以遍历列表与表吗?
import com.github.mjakubowski84.parquet4s.{ParquetStreams,ParquetWriter}
import akka.actor.ActorSystem
import akka.stream.{ActorMaterializer,Materializer}
import akka.stream.scaladsl.Source
import scala.concurrent.Await
import scala.concurrent.duration._
object Main extends App {
case class Table1(Id: Int,name: String)
case class Table2(Id: Int,age: Option[Int])
val table1_entities = List(Table1(1,"Foo"))
val table2_entities = List(Table2(2,Some(9999)))
//assume here is a lot of tables
val all_tables = List(
("file:///tmp/table1.parquet",table1_entities),("file:///tmp/table2.parquet",table2_entities)
)
implicit val system: ActorSystem = ActorSystem()
implicit val materializer: Materializer = ActorMaterializer()
//for single tables it works perfectly
//val future = Source(table1_entities).runWith(ParquetStreams.toParquetSingleFile(path = "file:///tmp/table1.parquet"))
//Await.result(future,2.second)
all_tables.foreach{
case (path,table) => {
val future = Source(table).runWith(ParquetStreams.toParquetSingleFile(path = path))
Await.result(future,2.second)
}
}
}```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。