Skip to content
Snippets Groups Projects
  1. Nov 04, 2015
    • Josh Rosen's avatar
      [SPARK-11491] Update build to use Scala 2.10.5 · ce5e6a28
      Josh Rosen authored
      Spark should build against Scala 2.10.5, since that includes a fix for Scaladoc that will fix doc snapshot publishing: https://issues.scala-lang.org/browse/SI-8479
      
      Author: Josh Rosen <joshrosen@databricks.com>
      
      Closes #9450 from JoshRosen/upgrade-to-scala-2.10.5.
      ce5e6a28
    • Reynold Xin's avatar
      [SPARK-11510][SQL] Remove SQL aggregation tests for higher order statistics · b6e0a5ae
      Reynold Xin authored
      We have some aggregate function tests in both DataFrameAggregateSuite and SQLQuerySuite. The two have almost the same coverage and we should just remove the SQL one.
      
      Author: Reynold Xin <rxin@databricks.com>
      
      Closes #9475 from rxin/SPARK-11510.
      b6e0a5ae
    • Yu ISHIKAWA's avatar
      [SPARK-10028][MLLIB][PYTHON] Add Python API for PrefixSpan · 411ff6af
      Yu ISHIKAWA authored
      Author: Yu ISHIKAWA <yuu.ishikawa@gmail.com>
      
      Closes #9469 from yu-iskw/SPARK-10028.
      411ff6af
    • Davies Liu's avatar
      [SPARK-11493] remove bitset from BytesToBytesMap · 1b6a5d4a
      Davies Liu authored
      Since we have 4 bytes as number of records in the beginning of a page, the address can not be zero, so we do not need the bitset.
      
      For performance concerns, the bitset could help speed up false lookup if the slot is empty (because bitset is smaller than longArray, cache hit rate will be higher). In practice, the map is filled with 35% - 70% (use 50% as average), so only half of the false lookups can benefit of it, all others will pay the cost of load the bitset (still need to access the longArray anyway).
      
      For aggregation, we always need to access the longArray (insert a new key after false lookup), also confirmed by a benchmark.
      
       For broadcast hash join, there could be a regression, but a simple benchmark showed that it may not (most of lookup are false):
      
      ```
      sqlContext.range(1<<20).write.parquet("small")
      df = sqlContext.read.parquet('small')
      for i in range(3):
          t = time.time()
          df2 = sqlContext.range(1<<26).selectExpr("id * 1111111111 % 987654321 as id2")
          df2.join(df, df.id == df2.id2).count()
          print time.time() -t
      ```
      
      Having bitset (used time in seconds):
      ```
      17.5404241085
      10.2758829594
      10.5786800385
      ```
      After removing bitset (used time in seconds):
      ```
      21.8939979076
      12.4132959843
      9.97224712372
      ```
      
      cc rxin nongli
      
      Author: Davies Liu <davies@databricks.com>
      
      Closes #9452 from davies/remove_bitset.
      1b6a5d4a
    • Adam Roberts's avatar
      [SPARK-10949] Update Snappy version to 1.1.2 · 701fb505
      Adam Roberts authored
      This is an updated version of #8995 by a-roberts. Original description follows:
      
      Snappy now supports concatenation of serialized streams, this patch contains a version number change and the "does not support" test is now a "supports" test.
      
      Snappy 1.1.2 changelog mentions:
      
      > snappy-java-1.1.2 (22 September 2015)
      > This is a backward compatible release for 1.1.x.
      > Add AIX (32-bit) support.
      > There is no upgrade for the native libraries of the other platforms.
      
      > A major change since 1.1.1 is a support for reading concatenated results of SnappyOutputStream(s)
      > snappy-java-1.1.2-RC2 (18 May 2015)
      > Fix #107: SnappyOutputStream.close() is not idempotent
      > snappy-java-1.1.2-RC1 (13 May 2015)
      > SnappyInputStream now supports reading concatenated compressed results of SnappyOutputStream
      > There has been no compressed format change since 1.0.5.x. So You can read the compressed results > interchangeablly between these versions.
      > Fixes a problem when java.io.tmpdir does not exist.
      
      Closes #8995.
      
      Author: Adam Roberts <aroberts@uk.ibm.com>
      Author: Josh Rosen <joshrosen@databricks.com>
      
      Closes #9439 from JoshRosen/update-snappy.
      701fb505
    • Reynold Xin's avatar
      [SPARK-11505][SQL] Break aggregate functions into multiple files · d19f4fda
      Reynold Xin authored
      functions.scala was getting pretty long. I broke it into multiple files.
      
      I also added explicit data types for some public vals, and renamed aggregate function pretty names to lower case, which is more consistent with rest of the functions.
      
      Author: Reynold Xin <rxin@databricks.com>
      
      Closes #9471 from rxin/SPARK-11505.
      d19f4fda
    • Reynold Xin's avatar
      [SPARK-11504][SQL] API audit for distributeBy and localSort · abf5e428
      Reynold Xin authored
      1. Renamed localSort -> sortWithinPartitions to avoid ambiguity in "local"
      2. distributeBy -> repartition to match the existing repartition.
      
      Author: Reynold Xin <rxin@databricks.com>
      
      Closes #9470 from rxin/SPARK-11504.
      abf5e428
    • Liang-Chi Hsieh's avatar
      [SPARK-10304][SQL] Following up checking valid dir structure for partition discovery · de289bf2
      Liang-Chi Hsieh authored
      This patch follows up #8840.
      
      Author: Liang-Chi Hsieh <viirya@appier.com>
      
      Closes #9459 from viirya/detect_invalid_part_dir_following.
      de289bf2
    • Reynold Xin's avatar
      Closes #9464 · 987df4bf
      Reynold Xin authored
      987df4bf
    • Reynold Xin's avatar
      [SPARK-11490][SQL] variance should alias var_samp instead of var_pop. · 3bd6f5d2
      Reynold Xin authored
      stddev is an alias for stddev_samp. variance should be consistent with stddev.
      
      Also took the chance to remove internal Stddev and Variance, and only kept StddevSamp/StddevPop and VarianceSamp/VariancePop.
      
      Author: Reynold Xin <rxin@databricks.com>
      
      Closes #9449 from rxin/SPARK-11490.
      3bd6f5d2
    • Wenchen Fan's avatar
      [SPARK-11197][SQL] add doc for run SQL on files directly · e0fc9c7e
      Wenchen Fan authored
      Author: Wenchen Fan <wenchen@databricks.com>
      
      Closes #9467 from cloud-fan/doc.
      e0fc9c7e
    • Reynold Xin's avatar
      [SPARK-11485][SQL] Make DataFrameHolder and DatasetHolder public. · cd1df662
      Reynold Xin authored
      These two classes should be public, since they are used in public code.
      
      Author: Reynold Xin <rxin@databricks.com>
      
      Closes #9445 from rxin/SPARK-11485.
      cd1df662
    • Marcelo Vanzin's avatar
      [SPARK-11235][NETWORK] Add ability to stream data using network lib. · 27feafcc
      Marcelo Vanzin authored
      The current interface used to fetch shuffle data is not very efficient for
      large buffers; it requires the receiver to buffer the entirety of the
      contents being downloaded in memory before processing the data.
      
      To use the network library to transfer large files (such as those that
      can be added using SparkContext addJar / addFile), this change adds a
      more efficient way of downloding data, by streaming the data and feeding
      it to a callback as data arrives.
      
      This is achieved by a custom frame decoder that replaces the current netty
      one; this decoder allows entering a mode where framing is skipped and data
      is instead provided directly to a callback. The existing netty classes
      (ByteToMessageDecoder and LengthFieldBasedFrameDecoder) could not be reused
      since their semantics do not allow for the interception approach the new
      decoder uses.
      
      Author: Marcelo Vanzin <vanzin@cloudera.com>
      
      Closes #9206 from vanzin/SPARK-11235.
      27feafcc
    • Marcelo Vanzin's avatar
      [SPARK-10622][CORE][YARN] Differentiate dead from "mostly dead" executors. · 8790ee6d
      Marcelo Vanzin authored
      In YARN mode, when preemption is enabled, we may leave executors in a
      zombie state while we wait to retrieve the reason for which the executor
      exited. This is so that we don't account for failed tasks that were
      running on a preempted executor.
      
      The issue is that while we wait for this information, the scheduler
      might decide to schedule tasks on the executor, which will never be
      able to run them. Other side effects include the block manager still
      considering the executor available to cache blocks, for example.
      
      So, when we know that an executor went down but we don't know why,
      stop everything related to the executor, except its running tasks.
      Only when we know the reason for the exit (or give up waiting for
      it) we do update the running tasks.
      
      This is achieved by a new `disableExecutor()` method in the
      `Schedulable` interface. For managers that do not behave like this
      (i.e. every one but YARN), the existing `executorLost()` method
      will behave the same way it did before.
      
      On top of that change, a few minor changes that made debugging easier,
      and fixed some other minor issues:
      - The cluster-mode AM was printing a misleading log message every
        time an executor disconnected from the driver (because the akka
        actor system was shared between driver and AM).
      - Avoid sending unnecessary requests for an executor's exit reason
        when we already know it was explicitly disabled / killed. This
        avoids both multiple requests, and unnecessary requests that would
        just cause warning messages on the AM (in the explicit kill case).
      - Tone down a log message about the executor being lost when it
        exited normally (e.g. preemption)
      - Wake up the AM monitor thread when requests for executor loss
        reasons arrive too, so that we can more quickly remove executors
        from this zombie state.
      
      Author: Marcelo Vanzin <vanzin@cloudera.com>
      
      Closes #8887 from vanzin/SPARK-10622.
      8790ee6d
    • Xusen Yin's avatar
      [SPARK-11443] Reserve space lines · 9b214cea
      Xusen Yin authored
      The trim_codeblock(lines) function in include_example.rb removes some blank lines in the code.
      
      Author: Xusen Yin <yinxusen@gmail.com>
      
      Closes #9400 from yinxusen/SPARK-11443.
      9b214cea
    • Pravin Gadakh's avatar
      [SPARK-11380][DOCS] Replace example code in mllib-frequent-pattern-mining.md using include_example · 820064e6
      Pravin Gadakh authored
      Author: Pravin Gadakh <pravingadakh177@gmail.com>
      Author: Pravin Gadakh <prgadakh@in.ibm.com>
      
      Closes #9340 from pravingadakh/SPARK-11380.
      820064e6
    • Yanbo Liang's avatar
      [SPARK-9492][ML][R] LogisticRegression in R should provide model statistics · e328b69c
      Yanbo Liang authored
      Like ml ```LinearRegression```, ```LogisticRegression``` should provide a training summary including feature names and their coefficients.
      
      Author: Yanbo Liang <ybliang8@gmail.com>
      
      Closes #9303 from yanboliang/spark-9492.
      e328b69c
    • tedyu's avatar
      [SPARK-11442] Reduce numSlices for local metrics test of SparkListenerSuite · c09e5139
      tedyu authored
      In the thread, http://search-hadoop.com/m/q3RTtcQiFSlTxeP/test+failed+due+to+OOME&subj=test+failed+due+to+OOME, it was discussed that memory consumption for SparkListenerSuite should be brought down.
      
      This is an attempt in that direction by reducing numSlices for local metrics test.
      
      Author: tedyu <yuzhihong@gmail.com>
      
      Closes #9384 from tedyu/master.
      c09e5139
    • jerryshao's avatar
      [SPARK-2960][DEPLOY] Support executing Spark from symlinks (reopen) · 8aff36e9
      jerryshao authored
      This PR is based on the work of roji to support running Spark scripts from symlinks. Thanks for the great work roji . Would you mind taking a look at this PR, thanks a lot.
      
      For releases like HDP and others, normally it will expose the Spark executables as symlinks and put in `PATH`, but current Spark's scripts do not support finding real path from symlink recursively, this will make spark fail to execute from symlink. This PR try to solve this issue by finding the absolute path from symlink.
      
      Instead of using `readlink -f` like what this PR (https://github.com/apache/spark/pull/2386) implemented is that `-f` is not support for Mac, so here manually seeking the path through loop.
      
      I've tested with Mac and Linux (Cent OS), looks fine.
      
      This PR did not fix the scripts under `sbin` folder, not sure if it needs to be fixed also?
      
      Please help to review, any comment is greatly appreciated.
      
      Author: jerryshao <sshao@hortonworks.com>
      Author: Shay Rojansky <roji@roji.org>
      
      Closes #8669 from jerryshao/SPARK-2960.
      8aff36e9
  2. Nov 03, 2015
    • Wenchen Fan's avatar
      [SPARK-11455][SQL] fix case sensitivity of partition by · 2692bdb7
      Wenchen Fan authored
      depend on `caseSensitive` to do column name equality check, instead of just `==`
      
      Author: Wenchen Fan <wenchen@databricks.com>
      
      Closes #9410 from cloud-fan/partition.
      2692bdb7
    • Nong's avatar
      [SPARK-11329] [SQL] Cleanup from spark-11329 fix. · e352de0d
      Nong authored
      Author: Nong <nong@cloudera.com>
      
      Closes #9442 from nongli/spark-11483.
      e352de0d
    • lewuathe's avatar
      [DOC] Missing link to R DataFrame API doc · d648a4ad
      lewuathe authored
      Author: lewuathe <lewuathe@me.com>
      Author: Lewuathe <lewuathe@me.com>
      
      Closes #9394 from Lewuathe/missing-link-to-R-dataframe.
      d648a4ad
    • Reynold Xin's avatar
      [SPARK-11489][SQL] Only include common first order statistics in GroupedData · 5051262d
      Reynold Xin authored
      We added a bunch of higher order statistics such as skewness and kurtosis to GroupedData. I don't think they are common enough to justify being listed, since users can always use the normal statistics aggregate functions.
      
      That is to say, after this change, we won't support
      ```scala
      df.groupBy("key").kurtosis("colA", "colB")
      ```
      
      However, we will still support
      ```scala
      df.groupBy("key").agg(kurtosis(col("colA")), kurtosis(col("colB")))
      ```
      
      Author: Reynold Xin <rxin@databricks.com>
      
      Closes #9446 from rxin/SPARK-11489.
      5051262d
    • Marcelo Vanzin's avatar
      [SPARK-11466][CORE] Avoid mockito in multi-threaded FsHistoryProviderSuite test. · 53e9cee3
      Marcelo Vanzin authored
      The test functionality should be the same, but without using mockito; logs don't
      really say anything useful but I suspect it may be the cause of the flakiness,
      since updating mocks when multiple threads may be using it doesn't work very
      well. It also allows some other cleanup (= less test code in FsHistoryProvider).
      
      Author: Marcelo Vanzin <vanzin@cloudera.com>
      
      Closes #9425 from vanzin/SPARK-11466.
      53e9cee3
    • Jacek Laskowski's avatar
      Fix typo in WebUI · 680b4e7b
      Jacek Laskowski authored
      Author: Jacek Laskowski <jacek.laskowski@deepsense.io>
      
      Closes #9444 from jaceklaskowski/TImely-fix.
      680b4e7b
    • Wenchen Fan's avatar
      [SPARK-11477] [SQL] support create Dataset from RDD · f6fcb487
      Wenchen Fan authored
      Author: Wenchen Fan <wenchen@databricks.com>
      
      Closes #9434 from cloud-fan/rdd2ds and squashes the following commits:
      
      0892d72 [Wenchen Fan] support create Dataset from RDD
      f6fcb487
    • Davies Liu's avatar
      [SPARK-11467][SQL] add Python API for stddev/variance · 1d04dc95
      Davies Liu authored
      Add Python API for stddev/stddev_pop/stddev_samp/variance/var_pop/var_samp/skewness/kurtosis
      
      Author: Davies Liu <davies@databricks.com>
      
      Closes #9424 from davies/py_var.
      1d04dc95
    • felixcheung's avatar
      [SPARK-11407][SPARKR] Add doc for running from RStudio · a9676cc7
      felixcheung authored
      ![image](https://cloud.githubusercontent.com/assets/8969467/10871746/612ba44a-80a4-11e5-99a0-40b9931dee52.png)
      (This is without css, but you get the idea)
      shivaram
      
      Author: felixcheung <felixcheung_m@hotmail.com>
      
      Closes #9401 from felixcheung/rstudioprogrammingguide.
      a9676cc7
    • Cheng Lian's avatar
      [SPARK-10978][SQL] Allow data sources to eliminate filters · ebf8b0b4
      Cheng Lian authored
      This PR adds a new method `unhandledFilters` to `BaseRelation`. Data sources which implement this method properly may avoid the overhead of defensive filtering done by Spark SQL.
      
      Author: Cheng Lian <lian@databricks.com>
      
      Closes #9399 from liancheng/spark-10978.unhandled-filters.
      ebf8b0b4
    • Mark Grover's avatar
      [SPARK-9790][YARN] Expose in WebUI if NodeManager is the reason why executors were killed. · b2e4b314
      Mark Grover authored
      Author: Mark Grover <grover.markgrover@gmail.com>
      
      Closes #8093 from markgrover/nm2.
      b2e4b314
    • Yanbo Liang's avatar
      [SPARK-11349][ML] Support transform string label for RFormula · f54ff19b
      Yanbo Liang authored
      Currently ```RFormula``` can only handle label with ```NumericType``` or ```BinaryType``` (cast it to ```DoubleType``` as the label of Linear Regression training), we should also support label of ```StringType``` which is needed for Logistic Regression (glm with family = "binomial").
      For label of ```StringType```, we should use ```StringIndexer``` to transform it to 0-based index.
      
      Author: Yanbo Liang <ybliang8@gmail.com>
      
      Closes #9302 from yanboliang/spark-11349.
      f54ff19b
    • Yanbo Liang's avatar
      [MINOR][ML] Fix naming conventions of AFTSurvivalRegression coefficients · 3434572b
      Yanbo Liang authored
      Rename ```regressionCoefficients``` back to ```coefficients```, and name ```weights``` to ```parameters```.
      See discussion [here](https://github.com/apache/spark/pull/9311/files#diff-e277fd0bc21f825d3196b4551c01fe5fR230). mengxr vectorijk dbtsai
      
      Author: Yanbo Liang <ybliang8@gmail.com>
      
      Closes #9431 from yanboliang/aft-coefficients.
      3434572b
    • Yanbo Liang's avatar
      [SPARK-9836][ML] Provide R-like summary statistics for OLS via normal equation solver · d6f10aa7
      Yanbo Liang authored
      https://issues.apache.org/jira/browse/SPARK-9836
      
      Author: Yanbo Liang <ybliang8@gmail.com>
      
      Closes #9413 from yanboliang/spark-9836.
      d6f10aa7
    • Liang-Chi Hsieh's avatar
      [SPARK-10304] [SQL] Partition discovery should throw an exception if the dir structure is invalid · d6035d97
      Liang-Chi Hsieh authored
      JIRA: https://issues.apache.org/jira/browse/SPARK-10304
      
      This patch detects if the structure of partition directories is not valid.
      
      The test cases are from #8547. Thanks zhzhan.
      
      cc liancheng
      
      Author: Liang-Chi Hsieh <viirya@appier.com>
      
      Closes #8840 from viirya/detect_invalid_part_dir.
      d6035d97
    • Reynold Xin's avatar
      [SPARK-11256] Mark all Stage/ResultStage/ShuffleMapStage internal state as private. · 57446eb6
      Reynold Xin authored
      Author: Reynold Xin <rxin@databricks.com>
      
      Closes #9219 from rxin/stage-cleanup1.
      57446eb6
    • Daoyuan Wang's avatar
      [SPARK-10533][SQL] handle scientific notation in sqlParser · d188a677
      Daoyuan Wang authored
      https://issues.apache.org/jira/browse/SPARK-10533
      
      val df = sqlContext.createDataFrame(Seq(("a",1.0),("b",2.0),("c",3.0)))
      df.filter("_2 < 2.0e1").show
      
      Scientific notation didn't work.
      
      Author: Daoyuan Wang <daoyuan.wang@intel.com>
      
      Closes #9085 from adrian-wang/scinotation.
      d188a677
    • Jacek Lewandowski's avatar
      [SPARK-11344] Made ApplicationDescription and DriverDescription case classes · 233e534a
      Jacek Lewandowski authored
      DriverDescription refactored to case class because it included no mutable fields.
      
      ApplicationDescription had one mutable field, which was appUiUrl. This field was set by the driver to point to the driver web UI. Master was modifying this field when the application was removed to redirect requests to history server. This was wrong because objects which are sent over the wire should be immutable. Now appUiUrl is immutable in ApplicationDescription and always points to the driver UI even if it is already shutdown. The UI url which master exposes to the user and modifies dynamically is now included into ApplicationInfo - a data object which describes the application state internally in master. That URL in ApplicationInfo is initialised with the value from ApplicationDescription.
      
      ApplicationDescription also included value user, which is now a part of case class fields.
      
      Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
      
      Closes #9299 from jacek-lewandowski/SPARK-11344.
      233e534a
    • Michael Armbrust's avatar
      [SPARK-11404] [SQL] Support for groupBy using column expressions · b86f2cab
      Michael Armbrust authored
      This PR adds a new method `groupBy(cols: Column*)` to `Dataset` that allows users to group using column expressions instead of a lambda function.  Since the return type of these expressions is not known at compile time, we just set the key type as a generic `Row`.  If the user would like to work the key in a type-safe way, they can call `grouped.asKey[Type]`, which is also added in this PR.
      
      ```scala
      val ds = Seq(("a", 10), ("a", 20), ("b", 1), ("b", 2), ("c", 1)).toDS()
      val grouped = ds.groupBy($"_1").asKey[String]
      val agged = grouped.mapGroups { case (g, iter) =>
        Iterator((g, iter.map(_._2).sum))
      }
      
      agged.collect()
      
      res0: Array(("a", 30), ("b", 3), ("c", 1))
      ```
      
      Author: Michael Armbrust <michael@databricks.com>
      
      Closes #9359 from marmbrus/columnGroupBy and squashes the following commits:
      
      bbcb03b [Michael Armbrust] Update DatasetSuite.scala
      8fd2908 [Michael Armbrust] Update DatasetSuite.scala
      0b0e2f8 [Michael Armbrust] [SPARK-11404] [SQL] Support for groupBy using column expressions
      b86f2cab
    • Wenchen Fan's avatar
      [SPARK-11436] [SQL] rebind right encoder when join 2 datasets · 425ff03f
      Wenchen Fan authored
      When we join 2 datasets, we will combine 2 encoders into a tupled one, and use it as the encoder for the jioned dataset. Assume both of the 2 encoders are flat, their `constructExpression`s both reference to the first element of input row. However, when we combine 2 encoders, the schema of input row changed,  now the right encoder should reference to second element of input row. So we should rebind right encoder to let it know the new schema of input row before combine it.
      
      Author: Wenchen Fan <wenchen@databricks.com>
      
      Closes #9391 from cloud-fan/join and squashes the following commits:
      
      846d3ab [Wenchen Fan] rebind right encoder when join 2 datasets
      425ff03f
    • Davies Liu's avatar
      [SPARK-10429] [SQL] make mutableProjection atomic · 67e23b39
      Davies Liu authored
      Right now, SQL's mutable projection updates every value of the mutable project after it evaluates the corresponding expression. This makes the behavior of MutableProjection confusing and complicate the implementation of common aggregate functions like stddev because developers need to be aware that when evaluating {{i+1}}th expression of a mutable projection, {{i}}th slot of the mutable row has already been updated.
      
      This PR make the MutableProjection atomic, by generating all the results of expressions first, then copy them into mutableRow.
      
      Had run a mircro-benchmark, there is no notable performance difference between using class members and local variables.
      
      cc yhuai
      
      Author: Davies Liu <davies@databricks.com>
      
      Closes #9422 from davies/atomic_mutable and squashes the following commits:
      
      bbc1758 [Davies Liu] support wide table
      8a0ae14 [Davies Liu] fix bug
      bec07da [Davies Liu] refactor
      2891628 [Davies Liu] make mutableProjection atomic
      67e23b39
Loading