我想在foreachRDD中开始一个子线程。
我的情况是:
这项工作是连续读取hdfs目录,每100批次,我想启动一个模型训练任务(我将在那时制作rdds的快照并开始训练任务。训练任务需要很长时间很长时间(2小时),我不希望培训任务影响阅读新一批数据。
开始一个新的子线程是一个很好的解决方案吗?子线程可以在主线程中使用SparkContext并在主线程中使用rdd吗?
答案 0 :(得分:0)
您不需要在RDD操作中启动新线程。 要在每一百批中开始一个新作业,您可以添加一个BatchListner来计算批次数,并在number等于100时开始一个新作业。 BatchListener Example