在使用 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/