在使用 apache-spark 时,我试图应用" reduceByKeyAndWindow()"对某些流数据进行转换,并出现以下错误:
pyspark.sql.utils.IllegalArgumentException: requirement failed: The checkpoint directory has not been set. Please set it by StreamingContext.checkpoint().
是否需要设置检查点目录?
如果是,设置一个最简单的方法是什么?
答案 0 :(得分:6)
是的,这是必要的。 必须为具有以下任何要求的应用程序启用检查点:
有状态转换的使用 - 如果在应用程序中使用了updateStateByKey或reduceByKeyAndWindow(带反函数),则必须提供检查点目录以允许定期RDD检查点。
从运行应用程序的驱动程序的故障中恢复 - 元数据检查点用于使用进度信息进行恢复。 您可以使用sc.checkpoint(checkpointDirectoryLocation)
设置检查点目录http://spark.apache.org/docs/latest/streaming-programming-guide.html#checkpointing