spark SQLQueryTestSuite sql 自动化测试用例

把SQL 添加到自动化测试用例。

./sql/core/src/test/resources/sql-tests/inputs 目录存放原始的SQL. ./sql/core/src/test/resources/sql-tests/results存放SQL的执行结果。在执行测试时,根据最新生成的结果和 ./sql/core/src/test/resources/sql-tests/results 进行对比。如果一样,则测试成功,否则失败。

SQLQueryTestSuite 是执行这些 SQL 的地方,对于 inputs 目录的每个文件,生成一个case。

如在inputs下增加一个 sum.sql 内容如下。

--SET spark.sql.codegen.wholeStage=true
CREATE table  t_sum_decimal (c1 decimal);

insert into t_sum_decimal values(1.0),(2.0),(3.0),(null);
	
select sum(c1/2) from t_sum_decimal;

explain codegen select sum(c1/2) from t_sum_decimal;

drop table t_sum_decimal;

生成对应的 resuts。

SPARK_GENERATE_GOLDEN_FILES=1 build/sbt "sql/testOnly *SQLQueryTestSuite -- -z sum.sql"

你可能感兴趣的:(spark,spark)