自动运行spark命令

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

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

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

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

qybjjes1

qybjjes11#

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

  1. import java.util.concurrent.Executors
  2. import java.util.concurrent.TimeUnit.SECONDS
  3. Executors.newSingleThreadScheduledExecutor.scheduleWithFixedDelay(fileReaderThread(), 0L, 300L, SECONDS)
  4. def fileReaderThread() = new Runnable {
  5. override def run(): Unit = {
  6. ReadFiles.main(Array("hdfs://.../info.log"))
  7. }
  8. }

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

相关问题