{"push_id":1433648903,"size":480,"distinct_size":0,"ref":"refs/heads/master","head":"d2ae6399ee2f0524b88262735adbbcb2035de8fd","before":"44c7c62bcfca74c82ffc4e3c53997fff47bfacac","commits":[{"sha":"34283de160808324da02964cd5dc5df80e59ae71","author":{"name":"hyukjinkwon","email":"4c114bf3676ebcdb1616a11ca478d9181f4025da@gmail.com"},"message":"[SPARK-14839][SQL] Support for other types for `tableProperty` rule in SQL syntax\n\n## What changes were proposed in this pull request?\n\nCurrently, Scala API supports to take options with the types, `String`, `Long`, `Double` and `Boolean` and Python API also supports other types.\n\nThis PR corrects `tableProperty` rule to support other types (string, boolean, double and integer) so that support the options for data sources in a consistent way. This will affect other rules such as DBPROPERTIES and TBLPROPERTIES (allowing other types as values).\n\nAlso, `TODO add bucketing and partitioning.` was removed because it was resolved in https://github.com/apache/spark/commit/24bea000476cdd0b43be5160a76bc5b170ef0b42\n\n## How was this patch tested?\n\nUnit test in `MetastoreDataSourcesSuite.scala`.\n\nAuthor: hyukjinkwon <gurwls223@gmail.com>\n\nCloses #13517 from HyukjinKwon/SPARK-14839.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/34283de160808324da02964cd5dc5df80e59ae71"},{"sha":"42279bff686f9808ec7a9e8f4da95c717edc6026","author":{"name":"gatorsmile","email":"ea6589371ad7a107e4268706d7d8403e3ba585bb@gmail.com"},"message":"[SPARK-16374][SQL] Remove Alias from MetastoreRelation and SimpleCatalogRelation\n\n#### What changes were proposed in this pull request?\nDifferent from the other leaf nodes, `MetastoreRelation` and `SimpleCatalogRelation` have a pre-defined `alias`, which is used to change the qualifier of the node. However, based on the existing alias handling, alias should be put in `SubqueryAlias`.\n\nThis PR is to separate alias handling from `MetastoreRelation` and `SimpleCatalogRelation` to make it consistent with the other nodes. It simplifies the signature and conversion to a `BaseRelation`.\n\nFor example, below is an example query for `MetastoreRelation`,  which is converted to a `LogicalRelation`:\n```SQL\nSELECT tmp.a + 1 FROM test_parquet_ctas tmp WHERE tmp.a > 2\n```\n\nBefore changes, the analyzed plan is\n```\n== Analyzed Logical Plan ==\n(a + 1): int\nProject [(a#951 + 1) AS (a + 1)#952]\n+- Filter (a#951 > 2)\n   +- SubqueryAlias tmp\n      +- Relation[a#951] parquet\n```\nAfter changes, the analyzed plan becomes\n```\n== Analyzed Logical Plan ==\n(a + 1): int\nProject [(a#951 + 1) AS (a + 1)#952]\n+- Filter (a#951 > 2)\n   +- SubqueryAlias tmp\n      +- SubqueryAlias test_parquet_ctas\n         +- Relation[a#951] parquet\n```\n\n**Note: the optimized plans are the same.**\n\nFor `SimpleCatalogRelation`, the existing code always generates two Subqueries. Thus, no change is needed.\n\n#### How was this patch tested?\nAdded test cases.\n\nAuthor: gatorsmile <gatorsmile@gmail.com>\n\nCloses #14053 from gatorsmile/removeAliasFromMetastoreRelation.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/42279bff686f9808ec7a9e8f4da95c717edc6026"},{"sha":"69f5391408b779a400b553344fd61051004685fc","author":{"name":"MasterDDT","email":"05a31337d5c2a37e2ec9fe278e24a06c7ba39bc8@live.com"},"message":"[SPARK-16398][CORE] Make cancelJob and cancelStage APIs public\n\n## What changes were proposed in this pull request?\n\nMake SparkContext `cancelJob` and `cancelStage` APIs public. This allows applications to use `SparkListener` to do their own management of jobs via events, but without using the REST API.\n\n## How was this patch tested?\n\nExisting tests (dev/run-tests)\n\nAuthor: MasterDDT <miteshp@live.com>\n\nCloses #14072 from MasterDDT/SPARK-16398.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/69f5391408b779a400b553344fd61051004685fc"},{"sha":"4b5a72c7dc364ca8d57d9f4bb47f4cd31c5b3082","author":{"name":"Shixiong Zhu","email":"eb2f6da57ec54996cebae8c2a82b9fbfd527e14c@databricks.com"},"message":"[SPARK-16021][TEST-MAVEN] Fix the maven build\n\n## What changes were proposed in this pull request?\n\nFixed the maven build for #13983\n\n## How was this patch tested?\n\nThe existing tests.\n\nAuthor: Shixiong Zhu <shixiong@databricks.com>\n\nCloses #14084 from zsxwing/fix-maven.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/4b5a72c7dc364ca8d57d9f4bb47f4cd31c5b3082"},{"sha":"ce3ea96980e4b31ee0e26d3054c9be94be6f2003","author":{"name":"Tom Magrino","email":"b4ff0ed6b2f378ecb18a44daba12916fd6d7add8@fb.com"},"message":"[SPARK-15885][WEB UI] Provide links to executor logs from stage details page in UI\n\n## What changes were proposed in this pull request?\n\nThis moves over old PR https://github.com/apache/spark/pull/13664 to target master rather than branch-1.6.\n\nAdded links to logs (or an indication that there are no logs) for entries which list an executor in the stage details page of the UI.\n\nThis helps streamline the workflow where a user views a stage details page and determines that they would like to see the associated executor log for further examination.  Previously, a user would have to cross reference the executor id listed on the stage details page with the corresponding entry on the executors tab.\n\nLink to the JIRA: https://issues.apache.org/jira/browse/SPARK-15885\n\n## How was this patch tested?\n\nRan existing unit tests.\nRan test queries on a platform which did not record executor logs and again on a platform which did record executor logs and verified that the new table column was empty and links to the logs (which were verified as linking to the appropriate files), respectively.\n\nAttached is a screenshot of the UI page with no links, with the new columns highlighted.  Additional screenshot of these columns with the populated links.\n\nWithout links:\n![updated without logs](https://cloud.githubusercontent.com/assets/1450821/16059721/2b69dbaa-3239-11e6-9eed-e539764ca159.png)\n\nWith links:\n![updated with logs](https://cloud.githubusercontent.com/assets/1450821/16059725/32c6e316-3239-11e6-90bd-2553f43f7779.png)\n\nThis contribution is my original work and I license the work to the project under the Apache Spark project's open source license.\n\nAuthor: Tom Magrino <tmagrino@fb.com>\n\nCloses #13861 from tmagrino/uilogstweak.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/ce3ea96980e4b31ee0e26d3054c9be94be6f2003"},{"sha":"ab05db0b48f395543cd7d91e2ad9dd760516868b","author":{"name":"gatorsmile","email":"ea6589371ad7a107e4268706d7d8403e3ba585bb@gmail.com"},"message":"[SPARK-16368][SQL] Fix Strange Errors When Creating View With Unmatched Column Num\n\n#### What changes were proposed in this pull request?\nWhen creating a view, a common user error is the number of columns produced by the `SELECT` clause does not match the number of column names specified by `CREATE VIEW`.\n\nFor example, given Table `t1` only has 3 columns\n```SQL\ncreate view v1(col2, col4, col3, col5) as select * from t1\n```\nCurrently, Spark SQL reports the following error:\n```\nrequirement failed\njava.lang.IllegalArgumentException: requirement failed\n\tat scala.Predef$.require(Predef.scala:212)\n\tat org.apache.spark.sql.execution.command.CreateViewCommand.run(views.scala:90)\n```\n\nThis error message is very confusing. This PR is to detect the error and issue a meaningful error message.\n\n#### How was this patch tested?\nAdded test cases\n\nAuthor: gatorsmile <gatorsmile@gmail.com>\n\nCloses #14047 from gatorsmile/viewMismatchedColumns.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/ab05db0b48f395543cd7d91e2ad9dd760516868b"},{"sha":"986b2514013ed9ebab526f2cf3dc714cc9e480bf","author":{"name":"Reynold Xin","email":"9a371236ace08d82aa86864cade97762c12d4503@databricks.com"},"message":"[SPARK-16400][SQL] Remove InSet filter pushdown from Parquet\n\n## What changes were proposed in this pull request?\nThis patch removes InSet filter pushdown from Parquet data source, since row-based pushdown is not beneficial to Spark and brings extra complexity to the code base.\n\n## How was this patch tested?\nN/A\n\nAuthor: Reynold Xin <rxin@databricks.com>\n\nCloses #14076 from rxin/SPARK-16400.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/986b2514013ed9ebab526f2cf3dc714cc9e480bf"},{"sha":"4c6f00d09c016dfc1d2de6e694dff219c9027fa0","author":{"name":"Xusen Yin","email":"b3af76889e6bb255e66b77722a2ef0a4409760be@gmail.com"},"message":"[SPARK-16372][MLLIB] Retag RDD to tallSkinnyQR of RowMatrix\n\n## What changes were proposed in this pull request?\n\nThe following Java code because of type erasing:\n\n```Java\nJavaRDD<Vector> rows = jsc.parallelize(...);\nRowMatrix mat = new RowMatrix(rows.rdd());\nQRDecomposition<RowMatrix, Matrix> result = mat.tallSkinnyQR(true);\n```\n\nWe should use retag to restore the type to prevent the following exception:\n\n```Java\njava.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Lorg.apache.spark.mllib.linalg.Vector;\n```\n\n## How was this patch tested?\n\nJava unit test\n\nAuthor: Xusen Yin <yinxusen@gmail.com>\n\nCloses #14051 from yinxusen/SPARK-16372.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/4c6f00d09c016dfc1d2de6e694dff219c9027fa0"},{"sha":"6343f66557434ce889a25a7889d76d0d24188ced","author":{"name":"MechCoder","email":"f3b3c28cb28c968d96a6fc2a6a7c7d189719947d@nyu.edu"},"message":"[SPARK-16399][PYSPARK] Force PYSPARK_PYTHON to python\n\n## What changes were proposed in this pull request?\n\nI would like to change\n\n```bash\nif hash python2.7 2>/dev/null; then\n  # Attempt to use Python 2.7, if installed:\n  DEFAULT_PYTHON=\"python2.7\"\nelse\n  DEFAULT_PYTHON=\"python\"\nfi\n```\n\nto just ```DEFAULT_PYTHON=\"python\"```\n\nI'm not sure if it is a great assumption that python2.7 is used by default, when python points to something else.\n\n## How was this patch tested?\n\n(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)\n\n(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)\n\nAuthor: MechCoder <mks542@nyu.edu>\n\nCloses #14016 from MechCoder/followup.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/6343f66557434ce889a25a7889d76d0d24188ced"},{"sha":"a04cab8f17fcac05f86d2c472558ab98923f91e3","author":{"name":"Dongjoon Hyun","email":"1bf3a3c57610939bd1558dffb564906c959abecb@apache.org"},"message":"[SPARK-16174][SQL] Improve `OptimizeIn` optimizer to remove literal repetitions\n\n## What changes were proposed in this pull request?\n\nThis PR improves `OptimizeIn` optimizer to remove the literal repetitions from SQL `IN` predicates. This optimizer prevents user mistakes and also can optimize some queries like [TPCDS-36](https://github.com/apache/spark/blob/master/sql/core/src/test/resources/tpcds/q36.sql#L19).\n\n**Before**\n```scala\nscala> sql(\"select state from (select explode(array('CA','TN')) state) where state in ('TN','TN','TN','TN','TN','TN','TN')\").explain\n== Physical Plan ==\n*Filter state#6 IN (TN,TN,TN,TN,TN,TN,TN)\n+- Generate explode([CA,TN]), false, false, [state#6]\n   +- Scan OneRowRelation[]\n```\n\n**After**\n```scala\nscala> sql(\"select state from (select explode(array('CA','TN')) state) where state in ('TN','TN','TN','TN','TN','TN','TN')\").explain\n== Physical Plan ==\n*Filter state#6 IN (TN)\n+- Generate explode([CA,TN]), false, false, [state#6]\n   +- Scan OneRowRelation[]\n```\n\n## How was this patch tested?\n\nPass the Jenkins tests (including a new testcase).\n\nAuthor: Dongjoon Hyun <dongjoon@apache.org>\n\nCloses #13876 from dongjoon-hyun/SPARK-16174.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/a04cab8f17fcac05f86d2c472558ab98923f91e3"},{"sha":"0f7175def985a7f1e37198680f893e749612ab76","author":{"name":"Liwei Lin","email":"878182135bcb2086b9b1c72277449d6e06bbf76f@gmail.com"},"message":"[SPARK-16350][SQL] Fix support for incremental planning in wirteStream.foreach()\n\n## What changes were proposed in this pull request?\n\nThere are cases where `complete` output mode does not output updated aggregated value; for details please refer to [SPARK-16350](https://issues.apache.org/jira/browse/SPARK-16350).\n\nThe cause is that, as we do `data.as[T].foreachPartition { iter => ... }` in `ForeachSink.addBatch()`, `foreachPartition()` does not support incremental planning for now.\n\nThis patches makes `foreachPartition()` support incremental planning in `ForeachSink`, by making a special version of `Dataset` with its `rdd()` method supporting incremental planning.\n\n## How was this patch tested?\n\nAdded a unit test which failed before the change\n\nAuthor: Liwei Lin <lwlin7@gmail.com>\n\nCloses #14030 from lw-lin/fix-foreach-complete.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/0f7175def985a7f1e37198680f893e749612ab76"},{"sha":"28710b42b0d18a55bd64d597558649537259b127","author":{"name":"Daoyuan Wang","email":"ca9858c9dc0e8e1b4a4756052ed9da2bddb5bfdf@intel.com"},"message":"[SPARK-16415][SQL] fix catalog string error\n\n## What changes were proposed in this pull request?\n\nIn #13537 we truncate `simpleString` if it is a long `StructType`. But sometimes we need `catalogString` to reconstruct `TypeInfo`, for example in description of [SPARK-16415 ](https://issues.apache.org/jira/browse/SPARK-16415). So we need to keep the implementation of `catalogString` not affected by our truncate.\n\n## How was this patch tested?\n\nadded a test case.\n\nAuthor: Daoyuan Wang <daoyuan.wang@intel.com>\n\nCloses #14089 from adrian-wang/catalogstring.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/28710b42b0d18a55bd64d597558649537259b127"},{"sha":"f4767bcc7a9d1bdd301f054776aa45e7c9f344a7","author":{"name":"Felix Cheung","email":"00eb71019ad7acfd67cff51fce666aad32ce6eed@hotmail.com"},"message":"[SPARK-16310][SPARKR] R na.string-like default for csv source\n\n## What changes were proposed in this pull request?\n\nApply default \"NA\" as null string for R, like R read.csv na.string parameter.\n\nhttps://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html\nna.strings = \"NA\"\n\nAn user passing a csv file with NA value should get the same behavior with SparkR read.df(... source = \"csv\")\n\n(couldn't open JIRA, will do that later)\n\n## How was this patch tested?\n\nunit tests\n\nshivaram\n\nAuthor: Felix Cheung <felixcheung_m@hotmail.com>\n\nCloses #13984 from felixcheung/rcsvnastring.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/f4767bcc7a9d1bdd301f054776aa45e7c9f344a7"},{"sha":"6aa7d09f4e126f42e41085dec169c813379ed354","author":{"name":"Dongjoon Hyun","email":"1bf3a3c57610939bd1558dffb564906c959abecb@apache.org"},"message":"[SPARK-16425][R] `describe()` should not fail with non-numeric columns\n\n## What changes were proposed in this pull request?\n\nThis PR prevents ERRORs when `summary(df)` is called for `SparkDataFrame` with not-numeric columns. This failure happens only in `SparkR`.\n\n**Before**\n```r\n> df <- createDataFrame(faithful)\n> df <- withColumn(df, \"boolean\", df$waiting==79)\n> summary(df)\n16/07/07 14:15:16 ERROR RBackendHandler: describe on 34 failed\nError in invokeJava(isStatic = FALSE, objId$id, methodName, ...) :\n  org.apache.spark.sql.AnalysisException: cannot resolve 'avg(`boolean`)' due to data type mismatch: function average requires numeric types, not BooleanType;\n```\n\n**After**\n```r\n> df <- createDataFrame(faithful)\n> df <- withColumn(df, \"boolean\", df$waiting==79)\n> summary(df)\nSparkDataFrame[summary:string, eruptions:string, waiting:string]\n```\n\n## How was this patch tested?\n\nPass the Jenkins with a updated testcase.\n\nAuthor: Dongjoon Hyun <dongjoon@apache.org>\n\nCloses #14096 from dongjoon-hyun/SPARK-16425.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/6aa7d09f4e126f42e41085dec169c813379ed354"},{"sha":"5bce4580939c27876f11cd75f0dc2190fb9fa908","author":{"name":"Tathagata Das","email":"58b3b6773dfe925407947ae07f6b206d48277ab4@gmail.com"},"message":"[SPARK-16430][SQL][STREAMING] Add option maxFilesPerTrigger\n\n## What changes were proposed in this pull request?\n\nAn option that limits the file stream source to read 1 file at a time enables rate limiting. It has the additional convenience that a static set of files can be used like a stream for testing as this will allows those files to be considered one at a time.\n\nThis PR adds option `maxFilesPerTrigger`.\n\n## How was this patch tested?\n\nNew unit test\n\nAuthor: Tathagata Das <tathagata.das1565@gmail.com>\n\nCloses #14094 from tdas/SPARK-16430.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/5bce4580939c27876f11cd75f0dc2190fb9fa908"},{"sha":"dff73bfa5e08c4c065584cfa9655a7839d28ad49","author":{"name":"Dongjoon Hyun","email":"1bf3a3c57610939bd1558dffb564906c959abecb@apache.org"},"message":"[SPARK-16052][SQL] Improve `CollapseRepartition` optimizer for Repartition/RepartitionBy\n\n## What changes were proposed in this pull request?\n\nThis PR improves `CollapseRepartition` to optimize the adjacent combinations of **Repartition** and **RepartitionBy**. Also, this PR adds a testsuite for this optimizer.\n\n**Target Scenario**\n```scala\nscala> val dsView1 = spark.range(8).repartition(8, $\"id\")\nscala> dsView1.createOrReplaceTempView(\"dsView1\")\nscala> sql(\"select id from dsView1 distribute by id\").explain(true)\n```\n\n**Before**\n```scala\nscala> sql(\"select id from dsView1 distribute by id\").explain(true)\n== Parsed Logical Plan ==\n'RepartitionByExpression ['id]\n+- 'Project ['id]\n   +- 'UnresolvedRelation `dsView1`\n\n== Analyzed Logical Plan ==\nid: bigint\nRepartitionByExpression [id#0L]\n+- Project [id#0L]\n   +- SubqueryAlias dsview1\n      +- RepartitionByExpression [id#0L], 8\n         +- Range (0, 8, splits=8)\n\n== Optimized Logical Plan ==\nRepartitionByExpression [id#0L]\n+- RepartitionByExpression [id#0L], 8\n   +- Range (0, 8, splits=8)\n\n== Physical Plan ==\nExchange hashpartitioning(id#0L, 200)\n+- Exchange hashpartitioning(id#0L, 8)\n   +- *Range (0, 8, splits=8)\n```\n\n**After**\n```scala\nscala> sql(\"select id from dsView1 distribute by id\").explain(true)\n== Parsed Logical Plan ==\n'RepartitionByExpression ['id]\n+- 'Project ['id]\n   +- 'UnresolvedRelation `dsView1`\n\n== Analyzed Logical Plan ==\nid: bigint\nRepartitionByExpression [id#0L]\n+- Project [id#0L]\n   +- SubqueryAlias dsview1\n      +- RepartitionByExpression [id#0L], 8\n         +- Range (0, 8, splits=8)\n\n== Optimized Logical Plan ==\nRepartitionByExpression [id#0L]\n+- Range (0, 8, splits=8)\n\n== Physical Plan ==\nExchange hashpartitioning(id#0L, 200)\n+- *Range (0, 8, splits=8)\n```\n\n## How was this patch tested?\n\nPass the Jenkins tests (including a new testsuite).\n\nAuthor: Dongjoon Hyun <dongjoon@apache.org>\n\nCloses #13765 from dongjoon-hyun/SPARK-16052.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/dff73bfa5e08c4c065584cfa9655a7839d28ad49"},{"sha":"8228b06303718b202be60b830df7dfddd97057b1","author":{"name":"petermaxlee","email":"ac6c8937256e5ff211210b88da2643bdd0703390@gmail.com"},"message":"[SPARK-16436][SQL] checkEvaluation should support NaN\n\n## What changes were proposed in this pull request?\nThis small patch modifies ExpressionEvalHelper. checkEvaluation to support comparing NaN values for floating point comparisons.\n\n## How was this patch tested?\nThis is a test harness change.\n\nAuthor: petermaxlee <petermaxlee@gmail.com>\n\nCloses #14103 from petermaxlee/SPARK-16436.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/8228b06303718b202be60b830df7dfddd97057b1"},{"sha":"a54438cb23c80f7c7fc35da273677c39317cb1a5","author":{"name":"Dongjoon Hyun","email":"1bf3a3c57610939bd1558dffb564906c959abecb@apache.org"},"message":"[SPARK-16285][SQL] Implement sentences SQL functions\n\n## What changes were proposed in this pull request?\n\nThis PR implements `sentences` SQL function.\n\n## How was this patch tested?\n\nPass the Jenkins tests with a new testcase.\n\nAuthor: Dongjoon Hyun <dongjoon@apache.org>\n\nCloses #14004 from dongjoon-hyun/SPARK_16285.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/a54438cb23c80f7c7fc35da273677c39317cb1a5"},{"sha":"255d74fe4a0db2cc842177ec735bbde07c7c8732","author":{"name":"Xusen Yin","email":"b3af76889e6bb255e66b77722a2ef0a4409760be@gmail.com"},"message":"[SPARK-16369][MLLIB] tallSkinnyQR of RowMatrix should aware of empty partition\n\n## What changes were proposed in this pull request?\n\ntallSkinnyQR of RowMatrix should aware of empty partition, which could cause exception from Breeze qr decomposition.\n\nSee the [archived dev mail](https://mail-archives.apache.org/mod_mbox/spark-dev/201510.mbox/%3CCAF7ADNrycvPL3qX-VZJhq4OYmiUUhoscut_tkOm63Cm18iK1tQmail.gmail.com%3E) for more details.\n\n## How was this patch tested?\n\nScala unit test.\n\nAuthor: Xusen Yin <yinxusen@gmail.com>\n\nCloses #14049 from yinxusen/SPARK-16369.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/255d74fe4a0db2cc842177ec735bbde07c7c8732"},{"sha":"38cf8f2a50068f80350740ac28e31c8accd20634","author":{"name":"Jurriaan Pruis","email":"7ab05a0d12179b5166dc103f44a516627aff3c5b@jurriaanpruis.nl"},"message":"[SPARK-13638][SQL] Add quoteAll option to CSV DataFrameWriter\n\n## What changes were proposed in this pull request?\n\nAdds an quoteAll option for writing CSV which will quote all fields.\nSee https://issues.apache.org/jira/browse/SPARK-13638\n\n## How was this patch tested?\n\nAdded a test to verify the output columns are quoted for all fields in the Dataframe\n\nAuthor: Jurriaan Pruis <email@jurriaanpruis.nl>\n\nCloses #13374 from jurriaan/csv-quote-all.","distinct":false,"url":"https://api.github.com/repos/jialin03/spark/commits/38cf8f2a50068f80350740ac28e31c8accd20634"}]}
{"actor":{"display_login":"jialin03"}}