如何根据pyspark中另一列的值检查一列是否为null?

klsxnrf1  于 2021-07-13  发布在  Spark
关注(0)|答案(2)|浏览(501)

我怎样才能使我的条件打印真实是如果 vin 在特定的 date_stamp 是否为空?
vinvinardatenulleqr2114402-02-2021ebntyure43evirter4502-03-2021

  1. date_stamp = "02-02-2021"
  2. df2 = df.withColumn(vin,F.when(F.col('date')==F.lit(date_stamp)).isnull())
  3. if df2==True:
  4. print('True')
  5. else:
  6. print('False')
uubf1zoe

uubf1zoe1#

不能测试Dataframe是真是假。您需要测试列,并使用 head()[0] :

  1. result = df.filter(F.col('date')==F.lit(date_stamp)).select(F.col('vin').isNull()).head()[0]

然后你可以测试 result 使用类似 if result: print('True')

xlpyo6sf

xlpyo6sf2#

你也可以这样写:

  1. df2 = df.filter("date = '02-02-2021' AND vin IS NULL")
  2. if df2.count():
  3. print(True)
  4. else:
  5. print(False)

如果 df2.count > 0 这意味着至少有一个空值 vin 在那一天 date = 02-02-2021

相关问题