【问题标题】:Python Assert exceptionPython 断言异常
【发布时间】:2021-10-19 00:22:23
【问题描述】:

我在一个数据块笔记本的 10 个数据块单元格中有 phyton 代码。

第一个单元格包含以下代码。

df = spark.sql(f"""select * from test.table """)
count= df.count()

这里如果 count 为 0 ,我希望笔记本失败,如果 count 大于 1 ,我希望 databricks 笔记本中的其余单元格执行。

我正在尝试下面的代码。

 df = spark.sql(f"""select * from test.table """)
    count= df.count()
    assert count <= 0

上面的代码没有引发断言错误,而是说查询不返回任何结果并执行数据块中的下一个单元格。有人可以让我知道引发断言异常并终止笔记本而不执行更多单元格。

谢谢。

【问题讨论】:

    标签: python pyspark databricks


    【解决方案1】:

    你的断言倒退了。你断言你需要什么 是真的。

    assert count > 0
    

    (第一行的val 是什么?这是剪切粘贴错误吗?)

    ===

    回答以下问题:

    if count <= 0:
        raise AssertionError("must return at least one record")
    

    您可以查看list of built-in Python 异常,看看其中一个是否比一般的“断言错误”更适合您的情况。

    【讨论】:

    • 请注意,在最终生产代码中依赖此断言是不好的做法:断言用于测试和开发。它可以在生产中进行优化:如果需要,请提出真正的异常
    • @2e0byo 请让我知道在这种情况下提出异常。
    • @SanjanaSanju assert cond[, "message"] 等价于if not cond: raise AssertionError("message")。所以只需使用if 和一些适当的错误(或自定义错误):可能类似于ValueError 这里
    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 2023-03-15
    • 2011-08-06
    • 2010-09-29
    相关资源
    最近更新 更多