svn commit: r23972 - in /dev/spark/2.3.0-SNAPSHOT-2018_01_01_20_01-e0c090f-docs: ./ _site/ _site/api/ _site/api/R/ _site/api/java/ _site/api/java/lib/ _site/api/java/org/ _site/api/java/org/apache/ _s
Author: pwendell Date: Tue Jan 2 04:14:48 2018 New Revision: 23972 Log: Apache Spark 2.3.0-SNAPSHOT-2018_01_01_20_01-e0c090f docs [This commit notification would consist of 1431 parts, which exceeds the limit of 50 ones, so it was shortened to the summary.] - To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org
spark git commit: [SPARK-22932][SQL] Refactor AnalysisContext
Repository: spark Updated Branches: refs/heads/master e734a4b9c -> e0c090f22 [SPARK-22932][SQL] Refactor AnalysisContext ## What changes were proposed in this pull request? Add a `reset` function to ensure the state in `AnalysisContext ` is per-query. ## How was this patch tested? The existing test cases Author: gatorsmileCloses #20127 from gatorsmile/refactorAnalysisContext. Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/e0c090f2 Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/e0c090f2 Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/e0c090f2 Branch: refs/heads/master Commit: e0c090f227e9b64e595b47d4d1f96f8a2fff5bf7 Parents: e734a4b Author: gatorsmile Authored: Tue Jan 2 09:19:18 2018 +0800 Committer: gatorsmile Committed: Tue Jan 2 09:19:18 2018 +0800 -- .../spark/sql/catalyst/analysis/Analyzer.scala | 25 1 file changed, 20 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/spark/blob/e0c090f2/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala -- diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala index 6d294d4..35b3511 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala @@ -52,6 +52,7 @@ object SimpleAnalyzer extends Analyzer( /** * Provides a way to keep state during the analysis, this enables us to decouple the concerns * of analysis environment from the catalog. + * The state that is kept here is per-query. * * Note this is thread local. * @@ -70,6 +71,8 @@ object AnalysisContext { } def get: AnalysisContext = value.get() + def reset(): Unit = value.remove() + private def set(context: AnalysisContext): Unit = value.set(context) def withAnalysisContext[A](database: Option[String])(f: => A): A = { @@ -95,6 +98,17 @@ class Analyzer( this(catalog, conf, conf.optimizerMaxIterations) } + override def execute(plan: LogicalPlan): LogicalPlan = { +AnalysisContext.reset() +try { + executeSameContext(plan) +} finally { + AnalysisContext.reset() +} + } + + private def executeSameContext(plan: LogicalPlan): LogicalPlan = super.execute(plan) + def resolver: Resolver = conf.resolver protected val fixedPoint = FixedPoint(maxIterations) @@ -176,7 +190,7 @@ class Analyzer( case With(child, relations) => substituteCTE(child, relations.foldLeft(Seq.empty[(String, LogicalPlan)]) { case (resolved, (name, relation)) => -resolved :+ name -> execute(substituteCTE(relation, resolved)) +resolved :+ name -> executeSameContext(substituteCTE(relation, resolved)) }) case other => other } @@ -600,7 +614,7 @@ class Analyzer( "avoid errors. Increase the value of spark.sql.view.maxNestedViewDepth to work " + "aroud this.") } - execute(child) + executeSameContext(child) } view.copy(child = newChild) case p @ SubqueryAlias(_, view: View) => @@ -1269,7 +1283,7 @@ class Analyzer( do { // Try to resolve the subquery plan using the regular analyzer. previous = current -current = execute(current) +current = executeSameContext(current) // Use the outer references to resolve the subquery plan if it isn't resolved yet. val i = plans.iterator @@ -1392,7 +1406,7 @@ class Analyzer( grouping, Alias(cond, "havingCondition")() :: Nil, child) - val resolvedOperator = execute(aggregatedCondition) + val resolvedOperator = executeSameContext(aggregatedCondition) def resolvedAggregateFilter = resolvedOperator .asInstanceOf[Aggregate] @@ -1450,7 +1464,8 @@ class Analyzer( val aliasedOrdering = unresolvedSortOrders.map(o => Alias(o.child, "aggOrder")()) val aggregatedOrdering = aggregate.copy(aggregateExpressions = aliasedOrdering) - val resolvedAggregate: Aggregate = execute(aggregatedOrdering).asInstanceOf[Aggregate] + val resolvedAggregate: Aggregate = +executeSameContext(aggregatedOrdering).asInstanceOf[Aggregate] val resolvedAliasedOrdering: Seq[Alias] = resolvedAggregate.aggregateExpressions.asInstanceOf[Seq[Alias]]
[spark] Git Push Summary
Repository: spark Updated Branches: refs/heads/branch-2.3 [created] e734a4b9c - To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org
spark git commit: [SPARK-21893][SPARK-22142][TESTS][FOLLOWUP] Enables PySpark tests for Flume and Kafka in Jenkins
Repository: spark Updated Branches: refs/heads/master 1c9f95cb7 -> e734a4b9c [SPARK-21893][SPARK-22142][TESTS][FOLLOWUP] Enables PySpark tests for Flume and Kafka in Jenkins ## What changes were proposed in this pull request? This PR proposes to enable PySpark tests for Flume and Kafka in Jenkins by explicitly setting the environment variables in `modules.py`. Seems we are not taking the dependencies into account when calculating environment variables: https://github.com/apache/spark/blob/3a07eff5af601511e97a05e6fea0e3d48f74c4f0/dev/run-tests.py#L554-L561 ## How was this patch tested? Manual tests with Jenkins in https://github.com/apache/spark/pull/20126. **Before** - https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/85559/consoleFull ``` [info] Setup the following environment variables for tests: ... ``` **After** - https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/85560/consoleFull ``` [info] Setup the following environment variables for tests: ENABLE_KAFKA_0_8_TESTS=1 ENABLE_FLUME_TESTS=1 ... ``` Author: hyukjinkwonCloses #20128 from HyukjinKwon/SPARK-21893. Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/e734a4b9 Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/e734a4b9 Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/e734a4b9 Branch: refs/heads/master Commit: e734a4b9c23463a7fea61011027a822bc9e11c98 Parents: 1c9f95c Author: hyukjinkwon Authored: Tue Jan 2 07:20:05 2018 +0900 Committer: hyukjinkwon Committed: Tue Jan 2 07:20:05 2018 +0900 -- dev/sparktestsupport/modules.py | 4 1 file changed, 4 insertions(+) -- http://git-wip-us.apache.org/repos/asf/spark/blob/e734a4b9/dev/sparktestsupport/modules.py -- diff --git a/dev/sparktestsupport/modules.py b/dev/sparktestsupport/modules.py index 44f990e..f834563 100644 --- a/dev/sparktestsupport/modules.py +++ b/dev/sparktestsupport/modules.py @@ -418,6 +418,10 @@ pyspark_streaming = Module( source_file_regexes=[ "python/pyspark/streaming" ], +environ={ +"ENABLE_FLUME_TESTS": "1", +"ENABLE_KAFKA_0_8_TESTS": "1" +}, python_test_goals=[ "pyspark.streaming.util", "pyspark.streaming.tests", - To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org
spark git commit: [SPARK-22530][PYTHON][SQL] Adding Arrow support for ArrayType
Repository: spark Updated Branches: refs/heads/master c284c4e1f -> 1c9f95cb7 [SPARK-22530][PYTHON][SQL] Adding Arrow support for ArrayType ## What changes were proposed in this pull request? This change adds `ArrayType` support for working with Arrow in pyspark when creating a DataFrame, calling `toPandas()`, and using vectorized `pandas_udf`. ## How was this patch tested? Added new Python unit tests using Array data. Author: Bryan CutlerCloses #20114 from BryanCutler/arrow-ArrayType-support-SPARK-22530. Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/1c9f95cb Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/1c9f95cb Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/1c9f95cb Branch: refs/heads/master Commit: 1c9f95cb771ac78775a77edd1abfeb2d8ae2a124 Parents: c284c4e Author: Bryan Cutler Authored: Tue Jan 2 07:13:27 2018 +0900 Committer: hyukjinkwon Committed: Tue Jan 2 07:13:27 2018 +0900 -- python/pyspark/sql/tests.py | 47 +++- python/pyspark/sql/types.py | 4 ++ .../execution/vectorized/ArrowColumnVector.java | 13 +- 3 files changed, 61 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/spark/blob/1c9f95cb/python/pyspark/sql/tests.py -- diff --git a/python/pyspark/sql/tests.py b/python/pyspark/sql/tests.py index 1c34c89..67bdb3d 100644 --- a/python/pyspark/sql/tests.py +++ b/python/pyspark/sql/tests.py @@ -3372,6 +3372,31 @@ class ArrowTests(ReusedSQLTestCase): schema_rt = from_arrow_schema(arrow_schema) self.assertEquals(self.schema, schema_rt) +def test_createDataFrame_with_array_type(self): +import pandas as pd +pdf = pd.DataFrame({"a": [[1, 2], [3, 4]], "b": [[u"x", u"y"], [u"y", u"z"]]}) +df, df_arrow = self._createDataFrame_toggle(pdf) +result = df.collect() +result_arrow = df_arrow.collect() +expected = [tuple(list(e) for e in rec) for rec in pdf.to_records(index=False)] +for r in range(len(expected)): +for e in range(len(expected[r])): +self.assertTrue(expected[r][e] == result_arrow[r][e] and +result[r][e] == result_arrow[r][e]) + +def test_toPandas_with_array_type(self): +expected = [([1, 2], [u"x", u"y"]), ([3, 4], [u"y", u"z"])] +array_schema = StructType([StructField("a", ArrayType(IntegerType())), + StructField("b", ArrayType(StringType()))]) +df = self.spark.createDataFrame(expected, schema=array_schema) +pdf, pdf_arrow = self._toPandas_arrow_toggle(df) +result = [tuple(list(e) for e in rec) for rec in pdf.to_records(index=False)] +result_arrow = [tuple(list(e) for e in rec) for rec in pdf_arrow.to_records(index=False)] +for r in range(len(expected)): +for e in range(len(expected[r])): +self.assertTrue(expected[r][e] == result_arrow[r][e] and +result[r][e] == result_arrow[r][e]) + @unittest.skipIf(not _have_pandas or not _have_arrow, "Pandas or Arrow not installed") class PandasUDFTests(ReusedSQLTestCase): @@ -3651,6 +3676,24 @@ class VectorizedUDFTests(ReusedSQLTestCase): bool_f(col('bool'))) self.assertEquals(df.collect(), res.collect()) +def test_vectorized_udf_array_type(self): +from pyspark.sql.functions import pandas_udf, col +data = [([1, 2],), ([3, 4],)] +array_schema = StructType([StructField("array", ArrayType(IntegerType()))]) +df = self.spark.createDataFrame(data, schema=array_schema) +array_f = pandas_udf(lambda x: x, ArrayType(IntegerType())) +result = df.select(array_f(col('array'))) +self.assertEquals(df.collect(), result.collect()) + +def test_vectorized_udf_null_array(self): +from pyspark.sql.functions import pandas_udf, col +data = [([1, 2],), (None,), (None,), ([3, 4],), (None,)] +array_schema = StructType([StructField("array", ArrayType(IntegerType()))]) +df = self.spark.createDataFrame(data, schema=array_schema) +array_f = pandas_udf(lambda x: x, ArrayType(IntegerType())) +result = df.select(array_f(col('array'))) +self.assertEquals(df.collect(), result.collect()) + def test_vectorized_udf_complex(self): from pyspark.sql.functions import pandas_udf, col, expr df = self.spark.range(10).select( @@ -3705,7 +3748,7 @@ class VectorizedUDFTests(ReusedSQLTestCase): def test_vectorized_udf_wrong_return_type(self): from pyspark.sql.functions
spark git commit: [MINOR] Fix a bunch of typos
Repository: spark Updated Branches: refs/heads/master 7a702d8d5 -> c284c4e1f [MINOR] Fix a bunch of typos Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/c284c4e1 Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/c284c4e1 Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/c284c4e1 Branch: refs/heads/master Commit: c284c4e1f6f684ca8db1cc446fdcc43b46e3413c Parents: 7a702d8 Author: Sean OwenAuthored: Sun Dec 31 17:00:41 2017 -0600 Committer: hyukjinkwon Committed: Tue Jan 2 07:10:19 2018 +0900 -- bin/find-spark-home | 2 +- .../java/org/apache/spark/util/kvstore/LevelDBIterator.java | 2 +- .../org/apache/spark/network/protocol/MessageWithHeader.java| 4 ++-- .../main/java/org/apache/spark/network/sasl/SaslEncryption.java | 4 ++-- .../org/apache/spark/network/util/TransportFrameDecoder.java| 2 +- .../network/shuffle/ExternalShuffleBlockResolverSuite.java | 2 +- .../src/main/java/org/apache/spark/util/sketch/BloomFilter.java | 2 +- .../java/org/apache/spark/unsafe/array/ByteArrayMethods.java| 2 +- core/src/main/scala/org/apache/spark/SparkContext.scala | 2 +- core/src/main/scala/org/apache/spark/status/storeTypes.scala| 2 +- .../test/scala/org/apache/spark/util/FileAppenderSuite.scala| 2 +- dev/github_jira_sync.py | 2 +- dev/lint-python | 2 +- examples/src/main/python/ml/linearsvc.py| 2 +- .../scala/org/apache/spark/sql/kafka010/KafkaSourceRDD.scala| 2 +- .../scala/org/apache/spark/sql/kafka010/KafkaTestUtils.scala| 2 +- .../org/apache/spark/streaming/kafka010/JavaKafkaRDDSuite.java | 2 +- .../scala/org/apache/spark/streaming/kinesis/KinesisUtils.scala | 4 ++-- .../main/java/org/apache/spark/launcher/ChildProcAppHandle.java | 2 +- .../main/scala/org/apache/spark/ml/tuning/CrossValidator.scala | 2 +- python/pyspark/ml/image.py | 2 +- .../scala/org/apache/spark/deploy/yarn/YarnClusterSuite.scala | 2 +- .../apache/spark/sql/catalyst/expressions/UnsafeArrayData.java | 2 +- .../scala/org/apache/spark/sql/catalyst/analysis/view.scala | 2 +- .../apache/spark/sql/catalyst/expressions/objects/objects.scala | 5 +++-- .../catalyst/expressions/aggregate/CountMinSketchAggSuite.scala | 2 +- .../spark/sql/sources/v2/streaming/MicroBatchWriteSupport.java | 2 +- .../org/apache/spark/sql/execution/ui/static/spark-sql-viz.css | 2 +- .../org/apache/spark/sql/execution/datasources/FileFormat.scala | 2 +- .../spark/sql/execution/datasources/csv/CSVInferSchema.scala| 2 +- .../org/apache/spark/sql/execution/joins/HashedRelation.scala | 2 +- .../execution/streaming/StreamingSymmetricHashJoinHelper.scala | 2 +- .../apache/spark/sql/execution/ui/SQLAppStatusListener.scala| 2 +- .../scala/org/apache/spark/sql/expressions/Aggregator.scala | 2 +- .../main/scala/org/apache/spark/sql/streaming/progress.scala| 2 +- .../src/test/java/test/org/apache/spark/sql/MyDoubleAvg.java| 2 +- .../sql-tests/inputs/typeCoercion/native/implicitTypeCasts.sql | 2 +- .../sql/execution/streaming/CompactibleFileStreamLogSuite.scala | 2 +- .../org/apache/spark/sql/sources/fakeExternalSources.scala | 2 +- .../org/apache/spark/sql/streaming/FileStreamSinkSuite.scala| 2 +- .../src/test/scala/org/apache/spark/sql/test/SQLTestUtils.scala | 2 +- .../src/main/scala/org/apache/spark/sql/hive/HiveShim.scala | 2 +- sql/hive/src/test/resources/data/conf/hive-log4j.properties | 2 +- .../scala/org/apache/spark/streaming/rdd/MapWithStateRDD.scala | 2 +- .../main/scala/org/apache/spark/streaming/util/StateMap.scala | 2 +- 45 files changed, 50 insertions(+), 49 deletions(-) -- http://git-wip-us.apache.org/repos/asf/spark/blob/c284c4e1/bin/find-spark-home -- diff --git a/bin/find-spark-home b/bin/find-spark-home index fa78407..617dbaa 100755 --- a/bin/find-spark-home +++ b/bin/find-spark-home @@ -21,7 +21,7 @@ FIND_SPARK_HOME_PYTHON_SCRIPT="$(cd "$(dirname "$0")"; pwd)/find_spark_home.py" -# Short cirtuit if the user already has this set. +# Short circuit if the user already has this set. if [ ! -z "${SPARK_HOME}" ]; then exit 0 elif [ ! -f "$FIND_SPARK_HOME_PYTHON_SCRIPT" ]; then http://git-wip-us.apache.org/repos/asf/spark/blob/c284c4e1/common/kvstore/src/main/java/org/apache/spark/util/kvstore/LevelDBIterator.java -- diff --git a/common/kvstore/src/main/java/org/apache/spark/util/kvstore/LevelDBIterator.java
spark git commit: [SPARK-21616][SPARKR][DOCS] update R migration guide and vignettes
Repository: spark Updated Branches: refs/heads/master f5b7714e0 -> 7a702d8d5 [SPARK-21616][SPARKR][DOCS] update R migration guide and vignettes ## What changes were proposed in this pull request? update R migration guide and vignettes ## How was this patch tested? manually Author: Felix CheungCloses #20106 from felixcheung/rreleasenote23. Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/7a702d8d Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/7a702d8d Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/7a702d8d Branch: refs/heads/master Commit: 7a702d8d5ed830de5d2237f136b08bd18deae037 Parents: f5b7714 Author: Felix Cheung Authored: Tue Jan 2 07:00:31 2018 +0900 Committer: hyukjinkwon Committed: Tue Jan 2 07:00:31 2018 +0900 -- R/pkg/tests/fulltests/test_Windows.R | 1 + R/pkg/vignettes/sparkr-vignettes.Rmd | 3 +-- docs/sparkr.md | 6 ++ 3 files changed, 8 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/spark/blob/7a702d8d/R/pkg/tests/fulltests/test_Windows.R -- diff --git a/R/pkg/tests/fulltests/test_Windows.R b/R/pkg/tests/fulltests/test_Windows.R index b2ec6c6..209827d 100644 --- a/R/pkg/tests/fulltests/test_Windows.R +++ b/R/pkg/tests/fulltests/test_Windows.R @@ -14,6 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # + context("Windows-specific tests") test_that("sparkJars tag in SparkContext", { http://git-wip-us.apache.org/repos/asf/spark/blob/7a702d8d/R/pkg/vignettes/sparkr-vignettes.Rmd -- diff --git a/R/pkg/vignettes/sparkr-vignettes.Rmd b/R/pkg/vignettes/sparkr-vignettes.Rmd index 8c4ea2f..2e66242 100644 --- a/R/pkg/vignettes/sparkr-vignettes.Rmd +++ b/R/pkg/vignettes/sparkr-vignettes.Rmd @@ -391,8 +391,7 @@ We convert `mpg` to `kmpg` (kilometers per gallon). `carsSubDF` is a `SparkDataF ```{r} carsSubDF <- select(carsDF, "model", "mpg") -schema <- structType(structField("model", "string"), structField("mpg", "double"), - structField("kmpg", "double")) +schema <- "model STRING, mpg DOUBLE, kmpg DOUBLE" out <- dapply(carsSubDF, function(x) { x <- cbind(x, x$mpg * 1.61) }, schema) head(collect(out)) ``` http://git-wip-us.apache.org/repos/asf/spark/blob/7a702d8d/docs/sparkr.md -- diff --git a/docs/sparkr.md b/docs/sparkr.md index a3254e7..997ea60 100644 --- a/docs/sparkr.md +++ b/docs/sparkr.md @@ -657,3 +657,9 @@ You can inspect the search path in R with [`search()`](https://stat.ethz.ch/R-ma - By default, derby.log is now saved to `tempdir()`. This will be created when instantiating the SparkSession with `enableHiveSupport` set to `TRUE`. - `spark.lda` was not setting the optimizer correctly. It has been corrected. - Several model summary outputs are updated to have `coefficients` as `matrix`. This includes `spark.logit`, `spark.kmeans`, `spark.glm`. Model summary outputs for `spark.gaussianMixture` have added log-likelihood as `loglik`. + +## Upgrading to SparkR 2.3.0 + + - The `stringsAsFactors` parameter was previously ignored with `collect`, for example, in `collect(createDataFrame(iris), stringsAsFactors = TRUE))`. It has been corrected. + - For `summary`, option for statistics to compute has been added. Its output is changed from that from `describe`. + - A warning can be raised if versions of SparkR package and the Spark JVM do not match. - To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org
svn commit: r23969 - in /dev/spark/2.3.0-SNAPSHOT-2018_01_01_08_01-f5b7714-docs: ./ _site/ _site/api/ _site/api/R/ _site/api/java/ _site/api/java/lib/ _site/api/java/org/ _site/api/java/org/apache/ _s
Author: pwendell Date: Mon Jan 1 16:14:47 2018 New Revision: 23969 Log: Apache Spark 2.3.0-SNAPSHOT-2018_01_01_08_01-f5b7714 docs [This commit notification would consist of 1431 parts, which exceeds the limit of 50 ones, so it was shortened to the summary.] - To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org
spark git commit: [BUILD] Close stale PRs
Repository: spark Updated Branches: refs/heads/master 994065d89 -> f5b7714e0 [BUILD] Close stale PRs Closes #18916 Closes #19520 Closes #19613 Closes #19739 Closes #19936 Closes #19919 Closes #19933 Closes #19917 Closes #20027 Closes #19035 Closes #20044 Closes #20104 Author: Sean OwenCloses #20130 from srowen/StalePRs. Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/f5b7714e Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/f5b7714e Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/f5b7714e Branch: refs/heads/master Commit: f5b7714e0eed4530519df97eb4faca8b05dde161 Parents: 994065d Author: Sean Owen Authored: Mon Jan 1 08:47:12 2018 -0600 Committer: Sean Owen Committed: Mon Jan 1 08:47:12 2018 -0600 -- -- - To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org For additional commands, e-mail: commits-h...@spark.apache.org