自动运行spark命令

t1qtbnec  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(338)

sparkscala中有一个对象,它读取hdfs文件并将其导出到集群中的本地文件中。我用一个对象创建了一个函数,创建了一个sparksession,该函数通过以下命令正确地返回了我想要的结果:

ReadFiles.main(Array("hdfs://.../info.log"))

但我希望这个函数每5分钟运行一次。有没有办法每5分钟执行一次命令?或者在sparksession函数中创建一些变量?
谢谢

qybjjes1

qybjjes11#

你可以按照下面的思路继续。

import java.util.concurrent.Executors
import java.util.concurrent.TimeUnit.SECONDS

Executors.newSingleThreadScheduledExecutor.scheduleWithFixedDelay(fileReaderThread(), 0L, 300L, SECONDS)

  def fileReaderThread() = new Runnable {
    override def run(): Unit = {
      ReadFiles.main(Array("hdfs://.../info.log"))
    }
  }

在单独的main中只调用newsinglethreadscheduledexecutor一次。稍后它将在固定时间内继续调用readfiles方法。

相关问题