{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/23351","repository_url":"https://api.github.com/repos/apache/spark","labels_url":"https://api.github.com/repos/apache/spark/issues/23351/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/23351/comments","events_url":"https://api.github.com/repos/apache/spark/issues/23351/events","html_url":"https://github.com/apache/spark/pull/23351","id":392649134,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM5ODczMTM4","number":23351,"title":"[SPARK-26216][SQL][followup] use abstract class instead of trait for UserDefinedFunction","user":{"login":"cloud-fan","id":3182036,"node_id":"MDQ6VXNlcjMxODIwMzY=","avatar_url":"https://avatars3.githubusercontent.com/u/3182036?v=4","gravatar_id":"","url":"https://api.github.com/users/cloud-fan","html_url":"https://github.com/cloud-fan","followers_url":"https://api.github.com/users/cloud-fan/followers","following_url":"https://api.github.com/users/cloud-fan/following{/other_user}","gists_url":"https://api.github.com/users/cloud-fan/gists{/gist_id}","starred_url":"https://api.github.com/users/cloud-fan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cloud-fan/subscriptions","organizations_url":"https://api.github.com/users/cloud-fan/orgs","repos_url":"https://api.github.com/users/cloud-fan/repos","events_url":"https://api.github.com/users/cloud-fan/events{/privacy}","received_events_url":"https://api.github.com/users/cloud-fan/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-12-19T15:20:38Z","updated_at":"2018-12-20T02:17:12Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/23351","html_url":"https://github.com/apache/spark/pull/23351","diff_url":"https://github.com/apache/spark/pull/23351.diff","patch_url":"https://github.com/apache/spark/pull/23351.patch"},"body":"## What changes were proposed in this pull request?\r\n\r\nA followup of https://github.com/apache/spark/pull/23178 , to keep binary compability by using abstract class.\r\n\r\n## How was this patch tested?\r\n\r\nManual test. I created a simple app with Spark 2.4\r\n```\r\nobject TryUDF {\r\n  def main(args: Array[String]): Unit = {\r\n    val spark = SparkSession.builder().appName(\"test\").master(\"local[*]\").getOrCreate()\r\n    import spark.implicits._\r\n    val f1 = udf((i: Int) => i + 1)\r\n    println(f1.deterministic)\r\n    spark.range(10).select(f1.asNonNullable().apply($\"id\")).show()\r\n    spark.stop()\r\n  }\r\n}\r\n```\r\n\r\nWhen I run it with current master, it fails with\r\n```\r\njava.lang.IncompatibleClassChangeError: Found interface org.apache.spark.sql.expressions.UserDefinedFunction, but class was expected\r\n```\r\n\r\nWhen I run it with this PR, it works\r\n"},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/448833958","html_url":"https://github.com/apache/spark/pull/23351#issuecomment-448833958","issue_url":"https://api.github.com/repos/apache/spark/issues/23351","id":448833958,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0ODgzMzk1OA==","user":{"login":"AmplabJenkins","id":4031291,"node_id":"MDQ6VXNlcjQwMzEyOTE=","avatar_url":"https://avatars3.githubusercontent.com/u/4031291?v=4","gravatar_id":"","url":"https://api.github.com/users/AmplabJenkins","html_url":"https://github.com/AmplabJenkins","followers_url":"https://api.github.com/users/AmplabJenkins/followers","following_url":"https://api.github.com/users/AmplabJenkins/following{/other_user}","gists_url":"https://api.github.com/users/AmplabJenkins/gists{/gist_id}","starred_url":"https://api.github.com/users/AmplabJenkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AmplabJenkins/subscriptions","organizations_url":"https://api.github.com/users/AmplabJenkins/orgs","repos_url":"https://api.github.com/users/AmplabJenkins/repos","events_url":"https://api.github.com/users/AmplabJenkins/events{/privacy}","received_events_url":"https://api.github.com/users/AmplabJenkins/received_events","type":"User","site_admin":false},"created_at":"2018-12-20T02:17:12Z","updated_at":"2018-12-20T02:17:12Z","author_association":"NONE","body":"Test FAILed.\nRefer to this link for build results (access rights to CI server needed): \nhttps://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/6295/\nTest FAILed."}}
{"actor":{"display_login":"AmplabJenkins"}}