我正在尝试查找以下代码的执行时间
public Dataset<Row> loadData(SparkSession spark, String url, String query, String driver) {
long startTime=System.nanoTime();
Dataset<Row> readDataFrame= spark.read()
.format("jdbc")
.option("url", url)
.option("dbtable", query)
.option("driver", driver)
.load();
long endTime=System.currentTimeMillis();
System.out.println((endTime-startTime)/1000000);
return readDataFrame;
}
上面的代码给了我20毫秒的时间。现在,我在下面添加了一个操作,例如
long startTime=System.nanoTime();
Dataset<Row> readDataFrame= spark.read()
.format("jdbc")
.option("url", url)
.option("dbtable", query)
.option("driver", driver)
.load();
long count=readDataFrame.count();
long endTime=System.currentTimeMillis();
System.out.println((endTime-startTime)/1000000);
return readDataFrame;
此代码给了我2000毫秒作为答案,我想是正确的。
现在,我们在代码的后面已经有一个动作,由于可能存在内存问题,所以不想使用persist。有什么好方法可以找到这个readDataFrame的时间吗?
这是一种衡量DataFrame操作所花费时间的不好方法。