Pyspark - 没有名为coverage_daemon 的模块

问题描述 投票:0回答:2

我正在尝试在我的数据框中执行这个简单的代码:

import ast rddAlertsRdd = df.rdd.map(lambda message: ast.literal_eval(message['value'])) rddAlerts= rddAlertsRdd.collect()
但我收到以下错误:

版本:

  • 火花:3.3.1
  • Hadoop:2.7
  • Python:3.7
  • Pyspark:3.3.1
  • Py4j:0.10.9.5
  • OpenJDK:8

会不会是兼容版本的问题?感谢您的帮助!

为了解决这个问题,我尝试更改 Dockerfile 中的 Spark 环境变量。 这是我的 Dockerfile 中的内容:

apache-spark pyspark
2个回答
2
投票

tl;dr 不知道可能出了什么问题,但在阅读源代码时为您提供了更多有关可能原因的信息。希望这有帮助。


唯一带有

coverage_daemon
的地方是 python/test_coverage/conf/spark-defaults.conf (正如您可能已经猜到的那样)用于测试覆盖率,并且似乎没有在生产中使用。

似乎由于某种原因python/run-tests-with-coverage被执行了。

您使用的 Jupyter 环境似乎配置错误。


0
投票

我也遇到过这个问题。显然我已将

spark-defaults.conf
文件从 python/test_coverage/conf/spark-defaults.conf 复制到
$SPARK_HOME/conf
,其中包括设置
spark.python.daemon.module coverage_daemon

我必须在执行 Pyspark RDD 代码时注释掉此配置才能修复它。

© www.soinside.com 2019 - 2024. All rights reserved.