Skip to content

Commit d2598fe

Browse files
vinodkcHyukjinKwon
authored andcommitted
[SPARK-28287][SQL][PYTHON][TESTS] Convert and port 'udaf.sql' into UDF test base
## What changes were proposed in this pull request? This PR adds some tests converted from 'udaf.sql' to test UDFs <details><summary>Diff comparing to 'udaf.sql'</summary> <p> ```diff diff --git a/sql/core/src/test/resources/sql-tests/results/udaf.sql.out b/sql/core/src/test/resources/sql-tests/results/udf/udf-udaf.sql.out index f4455bb..e1747f4 100644 --- a/sql/core/src/test/resources/sql-tests/results/udaf.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/udf/udf-udaf.sql.out -3,6 +3,8 -- !query 0 +-- This test file was converted from udaf.sql. + CREATE OR REPLACE TEMPORARY VIEW t1 AS SELECT * FROM VALUES (1), (2), (3), (4) as t1(int_col1) -21,15 +23,15 struct<> -- !query 2 -SELECT default.myDoubleAvg(int_col1) as my_avg from t1 +SELECT default.myDoubleAvg(udf(int_col1)) as my_avg, udf(default.myDoubleAvg(udf(int_col1))) as my_avg2, udf(default.myDoubleAvg(int_col1)) as my_avg3 from t1 -- !query 2 schema -struct<my_avg:double> +struct<my_avg:double,my_avg2:double,my_avg3:double> -- !query 2 output -102.5 +102.5 102.5 102.5 -- !query 3 -SELECT default.myDoubleAvg(int_col1, 3) as my_avg from t1 +SELECT default.myDoubleAvg(udf(int_col1), udf(3)) as my_avg from t1 -- !query 3 schema struct<> -- !query 3 output -46,12 +48,12 struct<> -- !query 5 -SELECT default.udaf1(int_col1) as udaf1 from t1 +SELECT default.udaf1(udf(int_col1)) as udaf1, udf(default.udaf1(udf(int_col1))) as udaf2, udf(default.udaf1(int_col1)) as udaf3 from t1 -- !query 5 schema struct<> -- !query 5 output org.apache.spark.sql.AnalysisException -Can not load class 'test.non.existent.udaf' when registering the function 'default.udaf1', please make sure it is on the classpath; line 1 pos 7 +Can not load class 'test.non.existent.udaf' when registering the function 'default.udaf1', please make sure it is on the classpath; line 1 pos 94 -- !query 6 ``` </p> </details> ## How was this patch tested? Tested as guided in SPARK-27921. Closes apache#25194 from vinodkc/br_Fix_SPARK-27921_3. Authored-by: Vinod KC <[email protected]> Signed-off-by: HyukjinKwon <[email protected]>
1 parent 54e058d commit d2598fe

File tree

2 files changed

+90
-0
lines changed

2 files changed

+90
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
-- This test file was converted from udaf.sql.
2+
3+
CREATE OR REPLACE TEMPORARY VIEW t1 AS SELECT * FROM VALUES
4+
(1), (2), (3), (4)
5+
as t1(int_col1);
6+
7+
CREATE FUNCTION myDoubleAvg AS 'test.org.apache.spark.sql.MyDoubleAvg';
8+
9+
SELECT default.myDoubleAvg(udf(int_col1)) as my_avg, udf(default.myDoubleAvg(udf(int_col1))) as my_avg2, udf(default.myDoubleAvg(int_col1)) as my_avg3 from t1;
10+
11+
SELECT default.myDoubleAvg(udf(int_col1), udf(3)) as my_avg from t1;
12+
13+
CREATE FUNCTION udaf1 AS 'test.non.existent.udaf';
14+
15+
SELECT default.udaf1(udf(int_col1)) as udaf1, udf(default.udaf1(udf(int_col1))) as udaf2, udf(default.udaf1(int_col1)) as udaf3 from t1;
16+
17+
DROP FUNCTION myDoubleAvg;
18+
DROP FUNCTION udaf1;
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
-- Automatically generated by SQLQueryTestSuite
2+
-- Number of queries: 8
3+
4+
5+
-- !query 0
6+
-- This test file was converted from udaf.sql.
7+
8+
CREATE OR REPLACE TEMPORARY VIEW t1 AS SELECT * FROM VALUES
9+
(1), (2), (3), (4)
10+
as t1(int_col1)
11+
-- !query 0 schema
12+
struct<>
13+
-- !query 0 output
14+
15+
16+
17+
-- !query 1
18+
CREATE FUNCTION myDoubleAvg AS 'test.org.apache.spark.sql.MyDoubleAvg'
19+
-- !query 1 schema
20+
struct<>
21+
-- !query 1 output
22+
23+
24+
25+
-- !query 2
26+
SELECT default.myDoubleAvg(udf(int_col1)) as my_avg, udf(default.myDoubleAvg(udf(int_col1))) as my_avg2, udf(default.myDoubleAvg(int_col1)) as my_avg3 from t1
27+
-- !query 2 schema
28+
struct<my_avg:double,my_avg2:double,my_avg3:double>
29+
-- !query 2 output
30+
102.5 102.5 102.5
31+
32+
33+
-- !query 3
34+
SELECT default.myDoubleAvg(udf(int_col1), udf(3)) as my_avg from t1
35+
-- !query 3 schema
36+
struct<>
37+
-- !query 3 output
38+
org.apache.spark.sql.AnalysisException
39+
Invalid number of arguments for function default.myDoubleAvg. Expected: 1; Found: 2; line 1 pos 7
40+
41+
42+
-- !query 4
43+
CREATE FUNCTION udaf1 AS 'test.non.existent.udaf'
44+
-- !query 4 schema
45+
struct<>
46+
-- !query 4 output
47+
48+
49+
50+
-- !query 5
51+
SELECT default.udaf1(udf(int_col1)) as udaf1, udf(default.udaf1(udf(int_col1))) as udaf2, udf(default.udaf1(int_col1)) as udaf3 from t1
52+
-- !query 5 schema
53+
struct<>
54+
-- !query 5 output
55+
org.apache.spark.sql.AnalysisException
56+
Can not load class 'test.non.existent.udaf' when registering the function 'default.udaf1', please make sure it is on the classpath; line 1 pos 94
57+
58+
59+
-- !query 6
60+
DROP FUNCTION myDoubleAvg
61+
-- !query 6 schema
62+
struct<>
63+
-- !query 6 output
64+
65+
66+
67+
-- !query 7
68+
DROP FUNCTION udaf1
69+
-- !query 7 schema
70+
struct<>
71+
-- !query 7 output
72+

0 commit comments

Comments
 (0)