gpt4 book ai didi

hadoop - Spark-任务异常

转载 作者:行者123 更新时间:2023-12-02 20:56:20 26 4
gpt4 key购买 nike

我正在使用Spark分析YouTube数据集,以找到上传视频数量最多的前五类。

加载数据:

val textRDD = sc.textFile("hdfs://quickstart.cloudera:8020/user/cloudera/spark/youtubedata.txt")

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

通过提取第4列创建RDD
val countRDD = textRDD.map( line => line.split("\t")(3))

创建了一对
val pairRDD = countRDD.map(x => (x,1))

到这里为止一切都很好。
最后一步是从列表中检索前5名
val result = pairRDD.reduceByKey(_ + _).sortByKey(false).take(5)

上面的步骤返回以下错误:
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)
.
.
.

我哪里出问题了?

最佳答案

在执行take的最后一行中,错误是而不是,但在下一行中

val countRDD = textRDD.map( line => line.split("\t")(3))

当使用 textFile api读取文件时,所有行都将转换为 string,因此不会保留 \t(制表符)。而且您无法使用 "\t"进行拆分

上面的语句只是一个 transformation,因此没有引发错误,但是当执行 takeaction时,引发了错误。

您将不得不通过在预期的K字符串的两边插入分割字符(字符串)来编辑输入文件,或者必须找到适当的方法来分割读取的行。

关于hadoop - Spark-任务异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44416447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com