1

関数への引数として Spark Dataset を渡したいです。例えば

  case class Token1(name: String, productId: Int, score: Double)
  val data1 = Seq(
    Token1("aaa", 100, 0.12),
    Token1("aaa", 200, 0.29),
    Token1("bbb", 200, 0.53),
    Token1("bbb", 300, 0.42))
  val ds1 = data1.toDS()

  case class Token2(name: String, productId: Int)
  val data2 = Seq(
    Token2("aaa", 100),
    Token2("aaa", 200),
    Token2("bbb", 200),
    Token2("bbb", 300))
  val ds2 = data2.toDS()

  def printDS(ds:Dataset[T]): Unit ={
                      ds.show()
            }
  printDS(ds1)
  printDS(ds2)

さまざまなデータセットを printDS() に渡したいです。Spark データセットは厳密に型指定されているため、Dataset[Any] を受け入れる printDS() に Dataset[Token1] または Dataset[Token2] を渡す方法は? Spark Dataset ではなく、Spark Dataframes を関数の引数として渡すことができます。

4

1 に答える 1

4

printDS メソッドで型パラメーターを使用するだけです。

def printDS[T](ds:Dataset[T]): Unit = {
  ds.show()
}
于 2016-12-08T04:12:28.380 に答える