Sparkを使用して、YouTubeデータセットを分析して、アップロードされたビデオの最大数を含む上位5つのカテゴリを見つけます。Spark - タスク内の例外
データをロードします。4列目ペア
val pairRDD = countRDD.map(x => (x,1))
を作成し
val countRDD = textRDD.map(line => line.split("\t")(3))
を抽出することによりRDDを作成しRDD
textRDD.first
res268: String = QuRYeRnAuXM EvilSquirrelPictures 1135 Pets & Animals 252 1075 4.96 46 86 gFa1YMEJFag nRcovJn9xHg 3TYqkBJ9YRk rSJ8QZWBegU 0TZqX5MbXMA UEvVksP91kg ZTopArY7Nbg 0RViGi2Rne8 HT_QlOJbDpg YZev1imoxX8 8qQrrfUTmh0 zQ83d_D2MGs u6_DQQjLsAw 73Wz9CQFDtE
の
val textRDD = sc.textFile("hdfs://quickstart.cloudera:8020/user/cloudera/spark/youtubedata.txt")
最初の行
ここまではすべて正常に動作していました。私が間違っている可能性が
17/06/07 07:55:59 ERROR executor.Executor: Exception in task 0.0 in stage 262.0 (TID 245) java.lang.ArrayIndexOutOfBoundsException: 3
at $line486.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1.apply(<console>:32)
at $line486.$read$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$anonfun$1.apply(<console>:32)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:328)
.
.
.
: 最後のステップは、上記の手順は、以下のエラーを
val result = pairRDD.reduceByKey(_ + _).sortByKey(false).take(5)
リストからトップ5を取得するために戻っているのですか?
あなたは何を意味するか、私はということでした何を意味するのか@philantrovert – philantrovert
を「すべての行を文字列に変換されたファイルは、テキストファイルのAPIを使用して読み込まれ_When、これ\ tの(タブ)がpreserved._されていません」 \ t(タブ)は一連のスペースとして扱われます。そうじゃない? –