val parameters: Map[String, Any] = Map("digits" -> Seq(1, 2, 3, 4, 5, 6, 7, 8,
class PrintMap extends App {
val conf: SparkConf = new SparkConf()
.setAppName("sparkApiSample")
.setMaster("local[*]")
val session: SparkSession = SparkSession
.builder()
.config(conf)
.getOrCreate()
val parameters: Map[String, Any] = Map("digits" -> Seq(1, 2, 3, 4, 5, 6, 7, 8, 9, 0))
val numbers: Seq[Int] = parameters("digits").asInstanceOf[Seq[Int]]
val rdd = session.sparkContext.parallelize(numbers)
val result = Map("result" -> rdd.map(x => x * 3).collect())
// want to "access/print the contents of the Array at result
result.get("result") match {
case Some(x) => x.asInstanceOf[Seq[Any]].foreach(println)
case None => println("error occurred")
}
なぜそれが結果ん、以下に示すように3で各番号を掛けたいようなのシンプルなマップを持っています次の例外と私は実際にマップにアクセスすることができますか? java.lang.ClassCastException: [I cannot be cast to scala.collection.Seq
安全でないコード - > asInstanceOfを使用しています。タイプとのパターンマッチングを試してください:http://stackoverflow.com/questions/15655817/scala-multiple-type-pattern-matching – Pavel
@Pavelしかし、どのタイプが[I @ ...? –
どういう意味ですか?安全でないコードを使用しています。メソッド/コードを追加して安全な方法で実行します。 – Pavel