Spark2.4.3 中方法不存在错误导致重新分区失败

Posted

技术标签:

【中文标题】Spark2.4.3 中方法不存在错误导致重新分区失败【英文标题】:Repartition failing with method not existing error in spark2.4.3 【发布时间】:2020-07-07 22:26:56 【问题描述】:

我目前有 spark 版本 2.4.3 并尝试对来自 hadoop 的文本文件使用重新分区功能。我收到以下错误:

py4j.protocol.Py4JError: An error occurred while calling o110.coalesce. Trace:
      py4j.Py4JException: Method coalesce([class java.lang.String, class java.lang.Boolean]) does not exist
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318)
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326)
at py4j.Gateway.invoke(Gateway.java:274)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.lang.Thread.run(Thread.java:748)

有什么想法吗?谢谢。

【问题讨论】:

你能发布一个代码示例,或者一个有点接近真实代码的虚拟代码吗? 它看起来像这样:“testRDD = sc.textFile(temp.txt).zipwithIndex(); testRDD = testRDD.repartition(10)” 我在测试中运行了相同的代码,它运行良好 spark.sparkContext.textFile(filePath).zipWithIndex().repartition(10).take(10),我在 spark 2.3 中运行它但这些确实是普通的用例,所以在 2.4 中应该没有太大的不同 当我在交互式 pyspark shell 中运行 pyspark 文档中的示例时,它似乎工作正常。那一定是hadoop的东西。 【参考方案1】:

我将列表而不是 RDD 传递到函数中,这导致了问题。感谢您的帮助

【讨论】:

以上是关于Spark2.4.3 中方法不存在错误导致重新分区失败的主要内容,如果未能解决你的问题,请参考以下文章

id索引更改怎么重新抽取索引内容

安装ubuntu特殊设备sda7不存在

重装系统后不小心重新分区了的资料找到法子

ghostwin8系统后不小心重新分区了,别的分区的数据怎样找回

无法使用 Spark 2.4.3 写入 Redshift

电脑ghostxp系统后不小心重新分区了的数据恢复法子