Spark 2.1.0, benim önerim kullanımına olacağını head(n: Int)
veya take(n: Int)
birlikte isEmpty
biri 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.NoSuchElementException
DataFrame 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 head
neden 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).queryExecution
head(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.