我们可以在火花流中的foreachRDD中开始一个新线程吗?

时间:2015-05-11 14:04:21

标签: apache-spark spark-streaming

我想在foreachRDD中开始一个子线程。

我的情况是:

这项工作是连续读取hdfs目录,每100批次,我想启动一个模型训练任务(我将在那时制作rdds的快照并开始训练任务。训练任务需要很长时间很长时间(2小时),我不希望培训任务影响阅读新一批数据。

开始一个新的子线程是一个很好的解决方案吗?子线程可以在主线程中使用SparkContext并在主线程中使用rdd吗?

1 个答案:

答案 0 :(得分:0)

您不需要在RDD操作中启动新线程。 要在每一百批中开始一个新作业,您可以添加一个BatchListner来计算批次数,并在number等于100时开始一个新作业。 BatchListener Example