を試してみてください。
Scalaが厳密に型指定された言語であり、RDD[T]
がのRDD
である必要があるという理由があります。
今、最初の行はRDD[(String, Int, String, String, String)]
が、必要になること...今、あなたが見ることができるよう、あなたのRDDだけ異なる長さのリストを2、「行」(要素)を以下のいた
("001", 5, List("a", "b", "c"))
("002", 5, List("a", "b", "c", "d"))
を言うことができます秒はRDD[(String, Int, String, String, String, String)]
が必要です。
これにより、生成されたRDDのタイプがAny
と考えられ、RDD[Any]
になります。そして、このAny
タイプは実行時にErasure
のためにあなたのことをさらに制限します。
しかし、あなたは問題なくこれを行うことができ、特殊なケースがある - あなたは、各リストは、(この場合は3を言うことができます)known and same
長さを持っていることを知っていれば、
val yourRdd = rdd.map({
case (s, i, s1 :: s2 :: s3 :: _) => (s, i, s1, s2, s3)
})
今...それがある場合この特別なケースではなく、あなたのリストは異なる未知のサイズを持つことができます...もしあなたがそれをしたいのであれば...不特定の長さのリストをタプルに変換するのは簡単なことではありません。少なくとも、私はそれを行う簡単な方法は考えられません。
そして、私は非常に確かな理由なしにこれをやろうとしないようにアドバイスします。
'yourRDD.map {case(i、n、List(a、b、c))=>(i、n、a、b、c))'おそらく、要素として何を意味するのかはっきりしません「分離されたコンマ」ではなく、印刷されたものです。 –