-
Notifications
You must be signed in to change notification settings - Fork 240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEA] Enable integration tests in CI for Spark 3.2.0 without failing our regular builds #3483
Comments
first just manual run:
[2021-09-16T02:08:23.048Z] FAILED ../../src/main/python/udf_test.py::test_group_aggregate_udf_more_types[Float][IGNORE_ORDER({'local': True})]
[2021-09-16T02:08:23.048Z] FAILED ../../src/main/python/qa_nightly_select_test.py::test_needs_sort_select[SUM(byteF) OVER (PARTITION BY byteF ORDER BY CAST(dateF AS TIMESTAMP) RANGE BETWEEN INTERVAL 1 DAYS PRECEDING AND INTERVAL 1 DAYS FOLLOWING ) as sum_total][IGNORE_ORDER, INCOMPAT, APPROXIMATE_FLOAT] -> should be covered by DayTimeInterval changes, window exec falls back to cpu
|
this is caused by Spark now throwing SparkArithmeticException instead of java.lang.ArithmeticException |
csv_test was setup issue, passing now. |
A lot of the window function tests are going to be related to #3415 once that is in, then we can look at any more failing tests. |
for the datetime_test it looks like on 3.1.1 TimeAdd literal type was org.apache.spark.unsafe.types.CalendarInterval but not in 3.2.0 its Long and thus results in a: : java.lang.ClassCastException: java.lang.Long cannot be cast to org.apache.spark.unsafe.types.CalendarInterval. ? This is all around the new handling of DayTimeIntervalType |
Also note I'm working on getting the 3.2.0 jenkins job running, we just need to get the 3.2.1-snapshot stuff all the way through a build and get a jar. |
It turns out that average was extended to support more types, so not the query is falling back to the CPU when it does not need to. I am going to do dig into when some of the types were updated so I have a better idea of what needs to be changed. |
So it turns out that Spark is inserting an average for NullType even though technically Spark says it does not support it in the code. I can put in a quick fix to get the tests working again, it is just a little odd. |
I didn't get a chance to look into repart_test very far so if someone else has time, I made data smaller and diff has a few rows where hashed value isn't the same. This is on test_hash_repartition_exact |
The repart_test failures are caused by Spark now normalizing -0.0 to 0.0 when it did not before. A bit surprising they decided to break consistent hashing to fix this, but apparently they did. See SPARK-35207. |
But it is just -0, NaNs still are different from each other. |
Apparently this also impacts md5 but the tests are not as complete. We should extend our binary support to get better testing for it. |
The only QA test still failing is. FAILED ../../src/main/python/qa_nightly_select_test.py::test_needs_sort_select[SUM(byteF) OVER (PARTITION BY byteF ORDER BY CAST(dateF AS TIMESTAMP) RANGE BETWEEN INTERVAL 1 DAYS PRECEDING AND INTERVAL 1 DAYS FOLLOWING ) as sum_total][IGNORE_ORDER, INCOMPAT, APPROXIMATE_FLOAT] It is most likely the window update because it is over a DAY interval. |
all these are passing, if new ones show up, I'll file separate issue. |
Is your feature request related to a problem? Please describe.
Run all integration tests against Spark 3.2.0 using a multi-shim jar at least using minimumFeatureVersionMix if not all
Note failures may overlap with unit test issue: #3376
Describe the solution you'd like
part of CI that reports all the failures against Spark 3.2.0 to track progress but without failing if part of the regular test builds
Describe alternatives you've considered
Running locally with NUM_LOCAL_EXECS >= 2 probably captures some/most of the same failures. But CI is preferable.
Additional context
shim rework
The text was updated successfully, but these errors were encountered: