比较python/databricks中sql查询的计数返回?

Posted

技术标签:

【中文标题】比较python/databricks中sql查询的计数返回?【英文标题】:Compare return of count from sql query in python/databricks? 【发布时间】:2021-09-03 20:54:10 【问题描述】:

我想返回sql计数结果,如果计数大于0我想诱导一个失败函数。

但是,我遇到了一个错误。我认为这是因为 id_of_zero_count 是一个字符串,不能与整数进行比较?

id_of_zero_count = sql(""" SELECT count(*) cnt FROM schema.table where ID = 0 """.format(val))
#BU.collect[0][0] returns the value of the first row & first column

display(id_of_zero_count)

if id_of_zero_count > 0:
  print("Quality check not passed")
  induce_fail_func()

这是返回的错误:

TypeError: '>' not supported between instances of 'DataFrame' and 'int'

TypeError                                 Traceback (most recent call last)
<command-873419207778593> in <module>
----> 1 if id_of_zero_count > 0:
      2   print("Quality check not passed")
      3   induce_fail_func()

TypeError: '>' not supported between instances of 'DataFrame' and 'int'

【问题讨论】:

【参考方案1】:

sql 查询返回一个数据框,您应该在显示调用中看到它。

您可以改为获取第一行的第一个元素:

if id_of_zero_count.first()[0] > 0:
  print("Quality check not passed")
  induce_fail_func()

【讨论】:

返回 TypeError: 'DataFrame' object is not callable

以上是关于比较python/databricks中sql查询的计数返回?的主要内容,如果未能解决你的问题,请参考以下文章

将字典保存为 pyspark 数据框并加载它 - Python、Databricks

python Databricks_notebook_run

在 SQL 中查询比较日期

SQL ROW 子查询中比较的顺序定义?

在 SQL 查询中比较日期

如何在 SQL 查询中引入 BQ 大数值比较?