{"push_id":1124234382,"size":82,"distinct_size":82,"ref":"refs/heads/branch-2.0","head":"c281733ed738647666cefdfb7838d9f4c2bccc34","before":"d95be14b3bf47cd8427d4e7d92beac9291658b02","commits":[{"sha":"282a2a79cf4cbfec5697991d52577c6419bdda6c","author":{"email":"452ae006f36be6c70342f33f64bb6f6eb552689c@gmail.com","name":"Yanbo Liang"},"message":"[SPARK-15362][ML] Make spark.ml KMeansModel load backwards compatible\n\n## What changes were proposed in this pull request?\n[SPARK-14646](https://issues.apache.org/jira/browse/SPARK-14646) makes ```KMeansModel``` store the cluster centers one per row. ```KMeansModel.load()``` method needs to be updated in order to load models saved with Spark 1.6.\n\n## How was this patch tested?\nSince ```save/load``` is ```Experimental``` for 1.6, I think offline test for backwards compatibility is enough.\n\nAuthor: Yanbo Liang <ybliang8@gmail.com>\n\nCloses #13149 from yanboliang/spark-15362.\n\n(cherry picked from commit 1052d3644d7eb0e784eb883293ce63a352a3b123)\nSigned-off-by: Joseph K. Bradley <joseph@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/282a2a79cf4cbfec5697991d52577c6419bdda6c"},{"sha":"9f2730b0c7cefe83747e5dbc8a4e6ccbe5f72167","author":{"email":"452ae006f36be6c70342f33f64bb6f6eb552689c@gmail.com","name":"Yanbo Liang"},"message":"[SPARK-15292][ML] ML 2.0 QA: Scala APIs audit for classification\n\n## What changes were proposed in this pull request?\nAudit Scala API for classification, almost all issues were related ```MultilayerPerceptronClassifier``` in this section.\n* Fix one wrong param getter function: ```getOptimizer``` -> ```getSolver```\n* Add missing setter function for ```solver``` and ```stepSize```.\n* Make ```GD``` solver take effect.\n* Update docs, annotations and fix other minor issues.\n\n## How was this patch tested?\nExisting unit tests.\n\nAuthor: Yanbo Liang <ybliang8@gmail.com>\n\nCloses #13076 from yanboliang/spark-15292.\n\n(cherry picked from commit 8ecf7f77b2be0a178a8d94d60477876d4ab7517a)\nSigned-off-by: Joseph K. Bradley <joseph@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/9f2730b0c7cefe83747e5dbc8a4e6ccbe5f72167"},{"sha":"bd609b0b79ea9b9aa67b16d64007c242df0f1291","author":{"email":"bc9570497728884c7f6686fa0fc06a8d320e124b@in.ibm.com","name":"Pravin Gadakh"},"message":"[SPARK-14613][ML] Add @Since into the matrix and vector classes in spark-mllib-local\n\n## What changes were proposed in this pull request?\n\nThis PR add `Since` annotations in `Vectors.scala` and `Matrices.scala` of spark-mllib-local.\n\n## How was this patch tested?\n\nScala Style Checks.\n\nAuthor: Pravin Gadakh <prgadakh@in.ibm.com>\n\nCloses #13191 from pravingadakh/SPARK-14613.\n\n(cherry picked from commit 31f63ac25da43746fdef2a9477f6a79ac046112f)\nSigned-off-by: DB Tsai <dbt@netflix.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/bd609b0b79ea9b9aa67b16d64007c242df0f1291"},{"sha":"2604eadcfad20bebe6bd73fa8da36cd631e92e55","author":{"email":"c437f8b7af73b0a10ecac061712ff9de6d41089e@databricks.com","name":"Davies Liu"},"message":"[SPARK-15390] fix broadcast with 100 millions rows\n\n## What changes were proposed in this pull request?\n\nWhen broadcast a table with more than 100 millions rows (should not ideally), the size of needed memory will overflow.\n\nThis PR fix the overflow by converting it to Long when calculating the size of memory.\n\nAlso add more checking in broadcast to show reasonable messages.\n\n## How was this patch tested?\n\nAdd test.\n\nAuthor: Davies Liu <davies@databricks.com>\n\nCloses #13182 from davies/fix_broadcast.\n\n(cherry picked from commit 9308bf119204015c8733fab0c2aef70ff2e41d74)\nSigned-off-by: Davies Liu <davies.liu@gmail.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/2604eadcfad20bebe6bd73fa8da36cd631e92e55"},{"sha":"496f6d0fc189d81c3a354df37356d5518e22f35b","author":{"email":"905db6c57c9ba2de5402239d136139da9b5d0058@gmail.com","name":"gatorsmile"},"message":"[SPARK-14603][SQL][FOLLOWUP] Verification of Metadata Operations by Session Catalog\n\n#### What changes were proposed in this pull request?\nThis follow-up PR is to address the remaining comments in https://github.com/apache/spark/pull/12385\n\nThe major change in this PR is to issue better error messages in PySpark by using the mechanism that was proposed by davies in https://github.com/apache/spark/pull/7135\n\nFor example, in PySpark, if we input the following statement:\n```python\n>>> l = [('Alice', 1)]\n>>> df = sqlContext.createDataFrame(l)\n>>> df.createTempView(\"people\")\n>>> df.createTempView(\"people\")\n```\nBefore this PR, the exception we will get is like\n```\nTraceback (most recent call last):\n  File \"<stdin>\", line 1, in <module>\n  File \"/Users/xiaoli/IdeaProjects/sparkDelivery/python/pyspark/sql/dataframe.py\", line 152, in createTempView\n    self._jdf.createTempView(name)\n  File \"/Users/xiaoli/IdeaProjects/sparkDelivery/python/lib/py4j-0.10.1-src.zip/py4j/java_gateway.py\", line 933, in __call__\n  File \"/Users/xiaoli/IdeaProjects/sparkDelivery/python/pyspark/sql/utils.py\", line 63, in deco\n    return f(*a, **kw)\n  File \"/Users/xiaoli/IdeaProjects/sparkDelivery/python/lib/py4j-0.10.1-src.zip/py4j/protocol.py\", line 312, in get_return_value\npy4j.protocol.Py4JJavaError: An error occurred while calling o35.createTempView.\n: org.apache.spark.sql.catalyst.analysis.TempTableAlreadyExistsException: Temporary table 'people' already exists;\n    at org.apache.spark.sql.catalyst.catalog.SessionCatalog.createTempView(SessionCatalog.scala:324)\n    at org.apache.spark.sql.SparkSession.createTempView(SparkSession.scala:523)\n    at org.apache.spark.sql.Dataset.createTempView(Dataset.scala:2328)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n    at java.lang.reflect.Method.invoke(Method.java:606)\n    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:237)\n    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357)\n    at py4j.Gateway.invoke(Gateway.java:280)\n    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:128)\n    at py4j.commands.CallCommand.execute(CallCommand.java:79)\n    at py4j.GatewayConnection.run(GatewayConnection.java:211)\n    at java.lang.Thread.run(Thread.java:745)\n```\nAfter this PR, the exception we will get become cleaner:\n```\nTraceback (most recent call last):\n  File \"<stdin>\", line 1, in <module>\n  File \"/Users/xiaoli/IdeaProjects/sparkDelivery/python/pyspark/sql/dataframe.py\", line 152, in createTempView\n    self._jdf.createTempView(name)\n  File \"/Users/xiaoli/IdeaProjects/sparkDelivery/python/lib/py4j-0.10.1-src.zip/py4j/java_gateway.py\", line 933, in __call__\n  File \"/Users/xiaoli/IdeaProjects/sparkDelivery/python/pyspark/sql/utils.py\", line 75, in deco\n    raise AnalysisException(s.split(': ', 1)[1], stackTrace)\npyspark.sql.utils.AnalysisException: u\"Temporary table 'people' already exists;\"\n```\n\n#### How was this patch tested?\nFixed an existing PySpark test case\n\nAuthor: gatorsmile <gatorsmile@gmail.com>\n\nCloses #13126 from gatorsmile/followup-14684.","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/496f6d0fc189d81c3a354df37356d5518e22f35b"},{"sha":"96a473a1187b5d21c02d4af01470347a942cc854","author":{"email":"c437f8b7af73b0a10ecac061712ff9de6d41089e@databricks.com","name":"Davies Liu"},"message":"[SPARK-15300] Fix writer lock conflict when remove a block\n\n## What changes were proposed in this pull request?\n\nA writer lock could be acquired when 1) create a new block 2) remove a block 3) evict a block to disk. 1) and 3) could happen in the same time within the same task, all of them could happen in the same time outside a task. It's OK that when someone try to grab the write block for a block, but the block is acquired by another one that has the same task attempt id.\n\nThis PR remove the check.\n\n## How was this patch tested?\n\nUpdated existing tests.\n\nAuthor: Davies Liu <davies@databricks.com>\n\nCloses #13082 from davies/write_lock_conflict.\n\n(cherry picked from commit ad182086cc3bd7951aaf82693d9bcb56815b43e4)\nSigned-off-by: Andrew Or <andrew@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/96a473a1187b5d21c02d4af01470347a942cc854"},{"sha":"9c817d027713859cac483b4baaaf8b53c040ad93","author":{"email":"7d45abe39fd242ee2f6575da28f13d66568418b3@oss.nttdata.co.jp","name":"Kousuke Saruta"},"message":"[SPARK-15387][SQL] SessionCatalog in SimpleAnalyzer does not need to make database directory.\n\n## What changes were proposed in this pull request?\n\nAfter #12871 is fixed, we are forced to make `/user/hive/warehouse` when SimpleAnalyzer is used but SimpleAnalyzer may not need the directory.\n\n## How was this patch tested?\n\nManual test.\n\nAuthor: Kousuke Saruta <sarutak@oss.nttdata.co.jp>\n\nCloses #13175 from sarutak/SPARK-15387.","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/9c817d027713859cac483b4baaaf8b53c040ad93"},{"sha":"554e0f30a7fd9fae4282d93ec4c0f1c6dbdffabe","author":{"email":"2680965ad5aae29275c8fb10150cb10f5554e78b@gmail.com","name":"hyukjinkwon"},"message":"[SPARK-15322][SQL][FOLLOW-UP] Update deprecated accumulator usage into accumulatorV2\n\n## What changes were proposed in this pull request?\n\nThis PR corrects another case that uses deprecated `accumulableCollection` to use `listAccumulator`, which seems the previous PR missed.\n\nSince `ArrayBuffer[InternalRow].asJava` is `java.util.List[InternalRow]`, it seems ok to replace the usage.\n\n## How was this patch tested?\n\nRelated existing tests `InMemoryColumnarQuerySuite` and `CachedTableSuite`.\n\nAuthor: hyukjinkwon <gurwls223@gmail.com>\n\nCloses #13187 from HyukjinKwon/SPARK-15322.\n\n(cherry picked from commit f5065abf49dea0eac04b0ec219f2d832a0f6730a)\nSigned-off-by: Andrew Or <andrew@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/554e0f30a7fd9fae4282d93ec4c0f1c6dbdffabe"},{"sha":"97fd9a09ce1313ad7b9569fc3ca8e944d36d0ce9","author":{"email":"6be69bb5cf6cb8dd624e7f174d5aba3c49eb4343@us.ibm.com","name":"Holden Karau"},"message":"[SPARK-15316][PYSPARK][ML] Add linkPredictionCol to GeneralizedLinearRegression\n\n## What changes were proposed in this pull request?\n\nAdd linkPredictionCol to GeneralizedLinearRegression and fix the PyDoc to generate the bullet list\n\n## How was this patch tested?\n\ndoctests & built docs locally\n\nAuthor: Holden Karau <holden@us.ibm.com>\n\nCloses #13106 from holdenk/SPARK-15316-add-linkPredictionCol-toGeneralizedLinearRegression.\n\n(cherry picked from commit e71cd96bf733f0440f818c6efc7a04b68d7cbe45)\nSigned-off-by: Nick Pentreath <nickp@za.ibm.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/97fd9a09ce1313ad7b9569fc3ca8e944d36d0ce9"},{"sha":"4f8639f9d4144a5e2b1eb24a98e4c752c2dc00b8","author":{"email":"e6f14efef9fae0ae8f92d04007faea68035873ce@databricks.com","name":"Cheng Lian"},"message":"[SPARK-14346][SQL] Lists unsupported Hive features in SHOW CREATE TABLE output\n\n## What changes were proposed in this pull request?\n\nThis PR is a follow-up of #13079. It replaces `hasUnsupportedFeatures: Boolean` in `CatalogTable` with `unsupportedFeatures: Seq[String]`, which contains unsupported Hive features of the underlying Hive table. In this way, we can accurately report all unsupported Hive features in the exception message.\n\n## How was this patch tested?\n\nUpdated existing test case to check exception message.\n\nAuthor: Cheng Lian <lian@databricks.com>\n\nCloses #13173 from liancheng/spark-14346-follow-up.\n\n(cherry picked from commit 6ac1c3a040f88fae15c46acd73e7e3691f7d3619)\nSigned-off-by: Andrew Or <andrew@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/4f8639f9d4144a5e2b1eb24a98e4c752c2dc00b8"},{"sha":"62e5158f167425b9565a2b01fc494e593c57cae3","author":{"email":"b59cd5ce8cb5ae44d26fc6984be1f84cf74771a7@databricks.com","name":"Shixiong Zhu"},"message":"[SPARK-15317][CORE] Don't store accumulators for every task in listeners\n\n## What changes were proposed in this pull request?\n\nIn general, the Web UI doesn't need to store the Accumulator/AccumulableInfo for every task. It only needs the Accumulator values.\n\nIn this PR, it creates new UIData classes to store the necessary fields and make `JobProgressListener` store only these new classes, so that `JobProgressListener` won't store Accumulator/AccumulableInfo and the size of `JobProgressListener` becomes pretty small. I also eliminates `AccumulableInfo` from `SQLListener` so that we don't keep any references for those unused `AccumulableInfo`s.\n\n## How was this patch tested?\n\nI ran two tests reported in JIRA locally:\n\nThe first one is:\n```\nval data = spark.range(0, 10000, 1, 10000)\ndata.cache().count()\n```\nThe retained size of JobProgressListener decreases from 60.7M to 6.9M.\n\nThe second one is:\n```\nimport org.apache.spark.ml.CC\nimport org.apache.spark.sql.SQLContext\nval sqlContext = SQLContext.getOrCreate(sc)\nCC.runTest(sqlContext)\n```\n\nThis test won't cause OOM after applying this patch.\n\nAuthor: Shixiong Zhu <shixiong@databricks.com>\n\nCloses #13153 from zsxwing/memory.\n\n(cherry picked from commit 4e3cb7a5d965fd490390398ecfe35f1fc05e8511)\nSigned-off-by: Andrew Or <andrew@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/62e5158f167425b9565a2b01fc494e593c57cae3"},{"sha":"d1b5df83d789510340e20a98bee8fd3e0e55b8f8","author":{"email":"c437f8b7af73b0a10ecac061712ff9de6d41089e@databricks.com","name":"Davies Liu"},"message":"[SPARK-15392][SQL] fix default value of size estimation of logical plan\n\n## What changes were proposed in this pull request?\n\nWe use autoBroadcastJoinThreshold + 1L as the default value of size estimation, that is not good in 2.0, because we will calculate the size based on size of schema, then the estimation could be less than autoBroadcastJoinThreshold if you have an SELECT on top of an DataFrame created from RDD.\n\nThis PR change the default value to Long.MaxValue.\n\n## How was this patch tested?\n\nAdded regression tests.\n\nAuthor: Davies Liu <davies@databricks.com>\n\nCloses #13183 from davies/fix_default_size.\n\n(cherry picked from commit 5ccecc078aa757d3f1f6632aa6df5659490f602f)\nSigned-off-by: Andrew Or <andrew@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/d1b5df83d789510340e20a98bee8fd3e0e55b8f8"},{"sha":"4257ba37203b406fa63b978db101e578be075bfb","author":{"email":"b59cd5ce8cb5ae44d26fc6984be1f84cf74771a7@databricks.com","name":"Shixiong Zhu"},"message":"Fix the compiler error introduced by #13153 for Scala 2.10","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/4257ba37203b406fa63b978db101e578be075bfb"},{"sha":"833dbf9263f90b2b61dd5148249b8ec49524a8c4","author":{"email":"2a07432b1b7252977a4c2dfc8e6d6d5ac763a480@netflix.com","name":"DB Tsai"},"message":"[SPARK-15411][ML] Add @since to ml.stat.MultivariateOnlineSummarizer.scala\n\n## What changes were proposed in this pull request?\n\nAdd since to ml.stat.MultivariateOnlineSummarizer.scala\n\n## How was this patch tested?\n\nunit tests\n\nAuthor: DB Tsai <dbt@netflix.com>\n\nCloses #13197 from dbtsai/cleanup.\n\n(cherry picked from commit 5255e55c843c7b67fcb2abb4284b8b1a09bd6672)\nSigned-off-by: DB Tsai <dbt@netflix.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/833dbf9263f90b2b61dd5148249b8ec49524a8c4"},{"sha":"ebf30eddd5f72b3785cfa0042719b2a983e3788e","author":{"email":"452ae006f36be6c70342f33f64bb6f6eb552689c@gmail.com","name":"Yanbo Liang"},"message":"[SPARK-15361][ML] ML 2.0 QA: Scala APIs audit for ml.clustering\n\n## What changes were proposed in this pull request?\nAudit Scala API for ml.clustering.\nFix some wrong API documentations and update outdated one.\n\n## How was this patch tested?\nExisting unit tests.\n\nAuthor: Yanbo Liang <ybliang8@gmail.com>\n\nCloses #13148 from yanboliang/spark-15361.\n\n(cherry picked from commit 59e6c5560d13def686091391aabe024ecb43174b)\nSigned-off-by: Joseph K. Bradley <joseph@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/ebf30eddd5f72b3785cfa0042719b2a983e3788e"},{"sha":"758253f7c7493df60e417ed5c3ee360015cfd166","author":{"email":"ad9280c159074d9ec90899b584f520606e83d10e@techaddict.me","name":"Sandeep Singh"},"message":"[SPARK-15414][MLLIB] Make the mllib,ml linalg type conversion APIs public\n\n## What changes were proposed in this pull request?\nOpen up APIs for converting between new, old linear algebra types (in spark.mllib.linalg):\n`Sparse`/`Dense` X `Vector`/`Matrices` `.asML` and `.fromML`\n\n## How was this patch tested?\nExisting Tests\n\nAuthor: Sandeep Singh <sandeep@techaddict.me>\n\nCloses #13202 from techaddict/SPARK-15414.\n\n(cherry picked from commit ef43a5fe51614eecce2d144cc13b33004a47533a)\nSigned-off-by: Xiangrui Meng <meng@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/758253f7c7493df60e417ed5c3ee360015cfd166"},{"sha":"2c939e541db67a339002204e9e0c22a611ccac85","author":{"email":"2676c1e0be9d9df57419d05258d46b7142312de2@hortonworks.com","name":"jerryshao"},"message":"[SPARK-15375][SQL][STREAMING] Add ConsoleSink to structure streaming\n\n## What changes were proposed in this pull request?\n\nAdd ConsoleSink to structure streaming, user could use it to display dataframes on the console (useful for debugging and demostrating), similar to the functionality of `DStream#print`, to use it:\n\n```\n    val query = result.write\n      .format(\"console\")\n      .trigger(ProcessingTime(\"2 seconds\"))\n      .startStream()\n```\n\n## How was this patch tested?\n\nlocal verified.\n\nNot sure it is suitable to add into structure streaming, please review and help to comment, thanks a lot.\n\nAuthor: jerryshao <sshao@hortonworks.com>\n\nCloses #13162 from jerryshao/SPARK-15375.\n\n(cherry picked from commit dcf407de676ce99462a62f17cd98c9df56f057df)\nSigned-off-by: Reynold Xin <rxin@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/2c939e541db67a339002204e9e0c22a611ccac85"},{"sha":"b0aff55dd4ed4edd1dd64bc42fcacdf505a6db56","author":{"email":"452ae006f36be6c70342f33f64bb6f6eb552689c@gmail.com","name":"Yanbo Liang"},"message":"[SPARK-15341][DOC][ML] Add documentation for \"model.write\" to clarify \"summary\" was not saved\n\n## What changes were proposed in this pull request?\nCurrently in ```model.write```, we don't save ```summary```(if applicable). We should add documentation to clarify it.\nWe fixed the incorrect link ```[[MLWriter]]``` to ```[[org.apache.spark.ml.util.MLWriter]]``` BTW.\n\n## How was this patch tested?\nDocumentation update, no unit test.\n\nAuthor: Yanbo Liang <ybliang8@gmail.com>\n\nCloses #13131 from yanboliang/spark-15341.\n\n(cherry picked from commit f8107c7846c9fcabbe2579867574305c7f2028e7)\nSigned-off-by: Xiangrui Meng <meng@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/b0aff55dd4ed4edd1dd64bc42fcacdf505a6db56"},{"sha":"e53a8f2188b853e02716d36dd4bfc01b9d7abc74","author":{"email":"452ae006f36be6c70342f33f64bb6f6eb552689c@gmail.com","name":"Yanbo Liang"},"message":"[MINOR][ML][PYSPARK] ml.evaluation Scala and Python API sync\n\n## What changes were proposed in this pull request?\n```ml.evaluation``` Scala and Python API sync.\n\n## How was this patch tested?\nOnly API docs change, no new tests.\n\nAuthor: Yanbo Liang <ybliang8@gmail.com>\n\nCloses #13195 from yanboliang/evaluation-doc.\n\n(cherry picked from commit 664367781786df7ec52e39950dccd5a09681602c)\nSigned-off-by: Xiangrui Meng <meng@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/e53a8f2188b853e02716d36dd4bfc01b9d7abc74"},{"sha":"7e25131a93f2f13ecb525179bbe4ad77def84292","author":{"email":"b59cd5ce8cb5ae44d26fc6984be1f84cf74771a7@databricks.com","name":"Shixiong Zhu"},"message":"[SPARK-15416][SQL] Display a better message for not finding classes removed in Spark 2.0\n\n## What changes were proposed in this pull request?\n\nIf finding `NoClassDefFoundError` or `ClassNotFoundException`, check if the class name is removed in Spark 2.0. If so, the user must be using an incompatible library and we can provide a better message.\n\n## How was this patch tested?\n\n1. Run `bin/pyspark --packages com.databricks:spark-avro_2.10:2.0.1`\n2. type `sqlContext.read.format(\"com.databricks.spark.avro\").load(\"src/test/resources/episodes.avro\")`.\n\nIt will show `java.lang.ClassNotFoundException: org.apache.spark.sql.sources.HadoopFsRelationProvider is removed in Spark 2.0. Please check if your library is compatible with Spark 2.0`\n\nAuthor: Shixiong Zhu <shixiong@databricks.com>\n\nCloses #13201 from zsxwing/better-message.\n\n(cherry picked from commit 16ba71aba4e68bbb892d4ceb38d6d1d135d63fd3)\nSigned-off-by: Michael Armbrust <michael@databricks.com>","distinct":true,"url":"https://api.github.com/repos/yunpingf/spark/commits/7e25131a93f2f13ecb525179bbe4ad77def84292"}]}
{"actor":{"display_login":"yunpingf"}}