gpt4 book ai didi

sql - 运行多个SQL查询并测试是否通过Spark Scala

转载 作者:行者123 更新时间:2023-12-02 19:54:47 25 4
gpt4 key购买 nike

我正在运行100个查询(测试用例)以检查Spark Scala中的数据质量。我正在从配置单元表查询数据。

这些示例查询的预期结果是空数据框:

SELECT car_type FROM car_data WHERE car_version is null
SELECT car_color FROM car_data WHERE car_date is null
SELECT car_sale FROM car_data WHERE car_timestamp is null

我想根据测试结果将测试用例通过还是失败写入文本文件。我想知道实现此目标的最佳方法。

到目前为止,我有:
val test_1 = context.sql("SELECT car_type FROM car_data WHERE car_version is null")
val test_2 = context.sql("SELECT car_color FROM car_data WHERE car_date is null")
val test_3 = context.sql("SELECT car_sale FROM car_data WHERE car_timestamp is null")
test_1.head(1).isEmpty

最佳答案

如果您想知道是否有任何值NULL,则可以使用条件聚合。我倾向于使用一个查询来运行所有测试:

SELECT (CASE WHEN COUNT(*) = COUNT(car_type) THEN 'PASS' ELSE 'FAIL' END) as car_type_test,
(CASE WHEN COUNT(*) = COUNT(car_color) THEN 'PASS' ELSE 'FAIL' END) as car_color_test,
(CASE WHEN COUNT(*) = COUNT(car_sale) THEN 'PASS' ELSE 'FAIL' END) as car_sale_test
FROM car_data;

注意:这将认为是一个空表可以通过测试,而您的代码则不会。这些可以很容易地修改以处理这种情况,但是这种行为对我来说很有意义。

关于sql - 运行多个SQL查询并测试是否通过Spark Scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58548761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com