除了使用Java在Spark中进行计数检查之外,有哪些方法可以检查DataFrame是否为空?

时间:2017-05-23 00:17:09

标签: java apache-spark dataframe nullpointerexception spark-dataframe

if(df.count()== 0){
    System.out.println("df is an empty dataframe");
 }

以上是一种检查DataFrame是否为空而无需获取的方法 空指针异常。

在Spark中还有其他最好的方法吗?我担心如果DataFrame df获得数百万条记录,上述语句将需要很长时间才能执行。

2 个答案:

答案 0 :(得分:1)

计数可能会慢一些。相反,你可以检查head元素是否为空。

df.head(1).isEmpty

为此添加异常处理,因为如果df为空,它将抛出java.util.NoSuchElementException

更新:查看How to check if spark dataframe is empty

答案 1 :(得分:1)

我最近遇到过一个这样的场景。以下是检查dataframe是否为空的一些方法。

  • df.count()== 0
  • df.head()。的isEmpty
  • df.rdd.isEmpty
  • df.first()。的isEmpty

虽然最好避免使用count(),因为它更贵。但是,在某些情况下,您可能非常确定dataframe将只有一行或根本没有记录(例如:在Hive查询中执行max()函数)。在这种情况下,可以使用count()