sparkscala中有一个对象,它读取hdfs文件并将其导出到集群中的本地文件中。我用一个对象创建了一个函数,创建了一个sparksession,该函数通过以下命令正确地返回了我想要的结果:
ReadFiles.main(Array("hdfs://.../info.log"))
但我希望这个函数每5分钟运行一次。有没有办法每5分钟执行一次命令?或者在sparksession函数中创建一些变量?谢谢
qybjjes11#
你可以按照下面的思路继续。
import java.util.concurrent.Executorsimport java.util.concurrent.TimeUnit.SECONDSExecutors.newSingleThreadScheduledExecutor.scheduleWithFixedDelay(fileReaderThread(), 0L, 300L, SECONDS) def fileReaderThread() = new Runnable { override def run(): Unit = { ReadFiles.main(Array("hdfs://.../info.log")) } }
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 = {
}
在单独的main中只调用newsinglethreadscheduledexecutor一次。稍后它将在固定时间内继续调用readfiles方法。
1条答案
按热度按时间qybjjes11#
你可以按照下面的思路继续。
在单独的main中只调用newsinglethreadscheduledexecutor一次。稍后它将在固定时间内继续调用readfiles方法。