我在Databricks上使用Pyspark进行市场购物篮分析。事务数据集由总共540万个事务组成,其中大约有。11000件。我能够在数据集上运行FPGrowth,但是每当我试图显示或计算model.freqItemsets &模型。associationRules,我每次都会得到这个奇怪的错误:
org.apache.spark。SparkException: Job 88被取消,因为Stage 283中的Task 8084超过了输入输出记录的最大允许比率(1到235158,最大允许1到10000);该限制可以通过配置参数spark.databrick . querywatchdog . outputratiothreshold
进行修改。我甚至不能理解为什么我面临这个错误,以及我如何解决同样的问题。任何帮助都会很感激。提前感谢!
我试着阅读由Databricks提供的文档,但我不能清楚地理解为什么我得到这个错误
我假设您正在使用交互式集群/工作流或与多个用户共享相同的集群。您可以在笔记本中启用查询看门狗(将仅在运行时反映)或在集群配置中启用。
启用看门狗与spark.databricks.queryWatchdog.enabled
。使用spark.databricks.queryWatchdog.minTimeSecs
配置任务运行时。用spark.databricks.queryWatchdog.minOutputRows
显示输出。使用spark.databricks.queryWatchdog.outputRatioThreshold
配置输出比
outputRatioThreshold的默认值是1000,但是您可以根据您的分析增加并找到最佳值。例如(scala代码,但也可以是python或SQL,甚至是集群配置)
spark.conf.set("spark.databricks.queryWatchdog.enabled", true)
spark.conf.set("spark.databricks.queryWatchdog.outputRatioThreshold", 1000L)
详情请参阅:https://learn.microsoft.com/en-us/azure/databricks/clusters/query-watchdog (Azure DBX)
我正在使用Azure DBX,但同样适用于AWS中的DBX甚至是GCP