【发布时间】:2020-12-23 23:50:01
【问题描述】:
我有一个 java 程序,它使用单独线程上的 spark 将配置单元表缓存到内存中。此线程定期触发。 但有时,在缓存后(实际缓存发生时)运行操作(计数)时,作业会卡住。
如果卡住了,我想取消/杀死/停止这个动作。
我想弄清楚如何做以下两件事之一:
- 如果耗时超过 10 分钟,则终止此操作。
- 或在下次再次触发线程时将其杀死(因为线程会定期触发)。
下面是我的代码:
public class MyThread extends Thread {
public void run(SparkSession spark) {
Dataset<Row> dataset = spark.sql("select * from db.table");
dataset.cache();
// This is where job gets stuck sometimes. I want to kill/cancel this
long count = dataset.count();
System.out.println("Count = " + count);
}
}
【问题讨论】:
-
修复卡顿......
标签: java multithreading dataframe apache-spark caching