Spark 2.1.0, benim önerim kullanımına olacağını head(n: Int)veya take(n: Int)birlikte isEmptybiri size niyet en net sahiptir hangisi.
df.head(1).isEmpty
df.take(1).isEmpty
Python eşdeğeri ile:
len(df.head(1)) == 0
len(df.take(1)) == 0
Kullanılması df.first()ve df.head()hem dönecektir java.util.NoSuchElementExceptionDataFrame boşsa. doğrudan first()arar head(), hangi arar head(1).head.
def first(): T = head()
def head(): T = head(1).head
head(1)Bir Dizi döndürür, dolayısıyla bu Dizinin alınması DataFrame boş olduğunda headneden olur java.util.NoSuchElementException.
def head(n: Int): Array[T] = withAction("head", limit(n).queryExecution)(collectFromPlan)
Bunun yerine çağırmak head(), kullanmak head(1)dizisini almak için doğrudan ve sonra kullanabilirsiniz isEmpty.
take(n)aynı zamanda eşdeğerdir head(n)...
def take(n: Int): Array[T] = head(n)
Ve ( yöntemdeki uyarı ) limit(1).collect()ile eşdeğerdir , bu nedenle aşağıdakilerin tümü eşdeğerdir, en azından benim söyleyebileceğim kadarıyla ve DataFrame boşken bir istisna yakalamak zorunda kalmayacaksınız.head(1)limit(n).queryExecutionhead(n: Int)java.util.NoSuchElementException
df.head(1).isEmpty
df.take(1).isEmpty
df.limit(1).collect().isEmpty
Bunun daha eski bir soru olduğunu biliyorum, bu yüzden umarım Spark'ın daha yeni bir sürümünü kullanan birine yardımcı olur.