遍历具有不同类型的集合并写入镶木地板

问题描述

我有很多桌子,我需要将它们保存为实木复合地板格式。我试图使用这个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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...