在使用 apache-spark 时,我试图对一些流数据应用“reduceByKeyAndWindow()”转换,并得到以下错误:

pyspark.sql.utils.IllegalArgumentException: requirement failed: The checkpoint directory has not been set. Please set it by StreamingContext.checkpoint().

是否需要设置检查点目录?

如果是,设置一个最简单的方法是什么?

最佳答案

是的,这是必要的。
必须为具有以下任何要求的应用程序启用检查点:

有状态转换的使用 - 如果在应用程序中使用 updateStateByKey 或 reduceByKeyAndWindow(具有反函数),则必须提供检查点目录以允许定期 RDD 检查点。

从运行应用程序的驱动程序的故障中恢复 - 元数据检查点用于恢复进度信息。
您可以使用 sc.checkpoint(checkpointDirectoryLocation) 设置检查点目录

http://spark.apache.org/docs/latest/streaming-programming-guide.html#checkpointing

关于apache-spark - 未设置 Apache Spark 检查点目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33759564/

10-12 22:42