【问题标题】:How to trigger Slack notifications as a Validation Action in Great_Expectations如何在 Great_Expectations 中触发 Slack 通知作为验证操作
【发布时间】:2021-09-27 08:53:47
【问题描述】:

我在 Apache Spark 中使用 Databricks 和 Synapse 在 Apache Spark 中有以下 Great_Expectation

ge_df.expect_column_values_to_be_between('load_id', min_value=1000, max_value=1049). 

我已尝试向 Great_Expectation 添加松弛通知,如下所示:

ge_df.expect_column_values_to_be_between('load_id', min_value=1000, max_value=1049, slack_render = {"text": (test information,['MY_SLACK_WEBHOOK'])

但是失败了

谁能告诉我哪里出错了?

我也尝试了以下方法,但对我来说有点太高级了:

if not validation_results["success"]:
    num_evaluated = validation_results["statistics"]["evaluated_expectations"]
    num_successful = validation_results["statistics"]["successful_expectations"]
    validation_results_text = json.dumps(
        [result.to_json_dict() for result in validation_results["results"]],
        sort_keys=True,
        indent=4,
    )
    slack_renderer = {
        "text": (
            f"⚠️ Dataset has failed expecations\n"
            f"*Successful Expectations*: `{num_successful}/{num_evaluated}`\n"
            f"*Results*: ```\n{validation_results_text}\n```"
        )
    }

    response = requests.post(
        os.environ['SLACK_WEBHOOK'],
        data=json.dumps(slack_renderer),
        headers={"Content-Type": "application/json"},
    )

输入 slack_webhook 时出现错误

KeyError: 'https://hooks.slack.com/services/T1L0WSW9F/B028H2KKPU3/56EZfTdU1oIprsrxxx'
Traceback (most recent call last):

  File "/home/trusted-service-user/cluster-env/env/lib/python3.6/os.py", line 669, in __getitem__
    raise KeyError(key) from None

KeyError: 'https://hooks.slack.com/services/T1L0WSW9F/B028H2KKPU3/56EZfTdU1oIprsrxxx'

我相信问题出在这里:

response = requests.post(
        os.environ['https://hooks.slack.com/services/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'],
        data=json.dumps(slack_renderer),
        headers={"Content-Type": "application/json"},
    )

非常感谢任何帮助。

【问题讨论】:

  • 我尝试导入以下模块from great_expectations.checkpoint.actions.validate.slack_renderer,但没有成功

标签: apache-spark pyspark azure-databricks azure-synapse


【解决方案1】:

通过将 requests.post 更改为使其工作

response = requests.post(
    webhook_url, data=json.dumps(slack_renderer),
    headers={'Content-Type': 'application/json'},
    )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    相关资源
    最近更新 更多