collect and take 不适用于 RDD
Posted
技术标签:
【中文标题】collect and take 不适用于 RDD【英文标题】:collect and take is not working with RDD 【发布时间】:2018-06-16 18:03:11 【问题描述】:我正在尝试运行此代码:
rddCollected=rddCollect.mapValues(lambda x: (x,1))
rddCollected.collect()
rddCollectJoin=rddCollected.reduceByKey(lambda x,y:(x[0]+y[0],x[1]+y[1]))
--rddCollected 在收集时运行良好,但 rddCollectJoin 不工作并给出以下错误。
Py4JJavaError:调用 z:org.apache.spark.api.python.PythonRDD.runJob 时出错。 :org.apache.spark.SparkException:作业因阶段失败而中止:阶段 58.0 中的任务 0 失败 1 次,最近失败:阶段 58.0 中丢失任务 0.0(TID 78,本地主机,执行程序驱动程序):java.io.FileNotFoundException : C:\Users\lenovo\AppData\Local\Temp\blockmgr-431169ff-717a-4728-b9b2-c2ed1b4b5b20\0c\temp_shuffle_d089dc45-014d-4d07-b0c0-ee917ad1b501(系统找不到指定的路径)
Java 版本是 1.8 - 我有 java 10,但我将它缩小到 8,因为 10 存在问题 谁能帮忙?
【问题讨论】:
尝试重新运行,它会发生一段时间。 我关闭并重新运行它。它起作用了..可能是什么问题? 【参考方案1】:我在使用 .collect() 时遇到了一些问题。我正在使用一个不可序列化的类。只需对该类实现 Serializable 并重试。它对我有用。
【讨论】:
以上是关于collect and take 不适用于 RDD的主要内容,如果未能解决你的问题,请参考以下文章