当前位置: 首页 > 知识库问答 >
问题:

spark提交抛纱pyspark脚本超过最大递归深度

孙夕
2023-03-14

我可以在spark submit yarn-cluster模式下提交org.apache.spark.examples.sparkpi示例jar,它成功了,但是pyspark中的下面的代码片段失败了,最大递归深度超过了错误。

spark-submit --master yarn --deploy-mode cluster --executor-memory 1G --num-executors 4 --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON="/usr/bin/python2.7" test.py --verbose

在纱线集群模式下,我根据Pyspark的建议添加了pyspark_python env

test.py

from pyspark import SparkContext
from pyspark.sql import HiveContext

sc_new = SparkContext()
SQLContext = HiveContext(sc_new)
SQLContext.setConf("spark.sql.hive.convertMetastoreOrc", "false")
txt = SQLContext.sql( "SELECT 1")
txt.show(2000000, False)

怎么解决这个?

File "/hdfs/data_06/yarn/nm/usercache/<alias>/appcache/application_1583989737267_1123855/container_e59_1583989737267_1123855_01_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 746, in send_command
                   raise Py4JError("Answer from Java side is empty")
               Py4JError: Answer from Java side is empty
               ERROR:py4j.java_gateway:Error while sending or receiving.
               Traceback (most recent call last):File "/hdfs/data_10/yarn/nm/usercache/<alias>/appcache/application_1583989737267_1123601/container_e59_1583989737267_1123601_01_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 626, in send_command
File "/hdfs/data_10/yarn/nm/usercache/<alias>/appcache/application_1583989737267_1123601/container_e59_1583989737267_1123601_01_000001/py4j-0.9-src.zip/py4j/java_gateway.py", line 749, in send_command
File "/usr/lib64/python2.7/logging/__init__.py", line 1182, in exception
  self.error(msg, *args, **kwargs)
File "/usr/lib64/python2.7/logging/__init__.py", line 1175, in error
  self._log(ERROR, msg, args, **kwargs)
File "/usr/lib64/python2.7/logging/__init__.py", line 1268, in _log
  self.handle(record)
File "/usr/lib64/python2.7/logging/__init__.py", line 1278, in handle
  self.callHandlers(record)
File "/usr/lib64/python2.7/logging/__init__.py", line 1318, in callHandlers
  hdlr.handle(record)
File "/usr/lib64/python2.7/logging/__init__.py", line 749, in handle
  self.emit(record)
File "/usr/lib64/python2.7/logging/__init__.py", line 879, in emit
  self.handleError(record)
File "/usr/lib64/python2.7/logging/__init__.py", line 802, in handleError
  None, sys.stderr)
File "/usr/lib64/python2.7/traceback.py", line 125, in print_exception
  print_tb(tb, limit, file)
File "/usr/lib64/python2.7/traceback.py", line 69, in print_tb
  line = linecache.getline(filename, lineno, f.f_globals)
File "/usr/lib64/python2.7/linecache.py", line 14, in getline
  lines = getlines(filename, module_globals)
File "/usr/lib64/python2.7/linecache.py", line 40, in getlines
  return updatecache(filename, module_globals)
File "/usr/lib64/python2.7/linecache.py", line 128, in updatecache
  lines = fp.readlines()
RuntimeError: maximum recursion depth exceeded while calling a Python object
  • 运行Spark 1.6.0版
  • 配置单元,版本1.1.0
  • Hadoop版本:2.6.0-CDH5.13.0

共有1个答案

云凌
2023-03-14

通过调用txt.show(2000000,False),您正在执行py4j,以便在结果中没有那么多行的地方执行to-and-frojvm-python-object-jvm调用。我相信您可以在show()中调用的最大值是2000-ish。当您所做的只是选择1时,为什么需要显示2000000条记录?

 类似资料:
  • 问题内容: 我从星期一开始使用Python进行编程。我很喜欢学习它。但是我一直试图了解如何在tkinter菜单之间切换时避免递归!我确信这是一个非常基本的问题,感谢您宽容我对此主题的无知,但我无法在其他地方找到答案。 我现在正在做的最终是给我错误:RuntimeError:调用Python对象时超出了最大递归深度 这是我目前正在使用的模式。更新:下面的代码现在是完整的隔离副本,再现了我面临的问题!

  • 我对Python很陌生。我写了一个关于返回 x 在排序的重复元素数组 A 中的出现次数的函数: 错误是:运行时错误:超出最大递归深度。有人知道如何解决它吗?

  • 我不明白为什么我会得到这个最大深度错误。iam试图使用bst递归方法在数组中查找数字索引,下面是我的代码 任何人都可以告诉我代码块中发生了什么 错误块: PS C:\Users\admin\Desktop\DSA

  • 我试图在这个简单的类中做getter setter, 看起来很简单明了,但不知何故它不起作用,我错过了什么,帮我找到我出错的理解。 我得到以下错误。

  • 问题内容: 我使用以下代码解决了Euler项目的问题10,该代码通过强力工作: 这三个功能的工作方式如下: isPrime 检查数字是否为质数; primeList 返回一个列表,其中包含一组在一定范围内且限制为“ n”的素数,并且; sumPrimes 对列表中所有数字的值求和。(不需要最后一个功能,但是我喜欢它的清晰度,特别是对于像我这样的初学者。) 然后,我编写了一个新函数 primeLis

  • 问题内容: 我正在尝试从Django项目网站上的第1篇教程学习Django。我可能会缺少一些明显的东西,但是在遵循所有说明后,当我运行命令时 我在请求的结尾处得到了错误消息,以寻求帮助(为简便起见,我仅将错误消息的重复行的前几行发布)。 这是我在网上找到的一些解决方案/建议,但对我没有帮助。 1)sys.setrecursionlimit(1500)。 这对我不起作用。 2)。DjangoRunt