Dre*_*mer 2 apache-spark apache-spark-sql
我知道countSpark 中的 action 可能很昂贵,所以为了提高性能,我想有一种不同的方式来检查查询是否可以返回任何结果
这是我所做的
var df = spark.sql("select * from table_name where condition = 'blah' limit 1");
var dfEmpty = df.head(1).isEmpty;
Run Code Online (Sandbox Code Playgroud)
如果我使用上述解决方案来检查查询结果,它是一个有效的解决方案还是有任何潜在的未捕获错误?不过,它要快得多。
isEmpty 是数据的头..检查是否为空是很合理的,它是由spark api给出的并经过优化......因此,我更喜欢这个......
同样在查询中,我认为不需要限制 1。
/**
* Returns true if the `Dataset` is empty.
*
* @group basic
* @since 2.4.0
*/
def isEmpty: Boolean = withAction("isEmpty", limit(1).groupBy().count().queryExecution) { plan =>
plan.executeCollect().head.getLong(0) == 0
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |