You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Reynold Xin (JIRA)" <ji...@apache.org> on 2015/05/04 09:04:05 UTC
[jira] [Updated] (SPARK-7322) Add DataFrame DSL for window function
support
[ https://issues.apache.org/jira/browse/SPARK-7322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Reynold Xin updated SPARK-7322:
-------------------------------
Description:
class Column {
...
def over(): WindowFunctionSpec
...
}
// By default frame = full partition
class WindowFunctionSpec {
def partitionBy(cols: Column*): WindowFunctionSpec
def orderBy(cols: Column*): WindowFunctionSpec
// restrict frame beginning from current row - n position
def rowsPreceding(n: Int): WindowFunctionSpec
// restrict frame ending from current row - n position
def rowsFollowing(n: Int): WindowFunctionSpec
def rangePreceding(n: Int): WindowFunctionSpec
def rowsFollowing(n: Int): WindowFunctionSpec
}
df.select(
df.store,
df.date,
df.sales,
avg(df.sales).over.partitionBy(df.store)
.orderBy(df.store)
.rowsFollowing(0) // this means from unbounded preceding to current row
)
was:A good reference implementation: http://www.jooq.org/doc/3.6/manual-single-page/#window-functions
> Add DataFrame DSL for window function support
> ---------------------------------------------
>
> Key: SPARK-7322
> URL: https://issues.apache.org/jira/browse/SPARK-7322
> Project: Spark
> Issue Type: Sub-task
> Components: SQL
> Reporter: Reynold Xin
>
> class Column {
> ...
> def over(): WindowFunctionSpec
> ...
> }
> // By default frame = full partition
> class WindowFunctionSpec {
> def partitionBy(cols: Column*): WindowFunctionSpec
> def orderBy(cols: Column*): WindowFunctionSpec
> // restrict frame beginning from current row - n position
> def rowsPreceding(n: Int): WindowFunctionSpec
> // restrict frame ending from current row - n position
> def rowsFollowing(n: Int): WindowFunctionSpec
> def rangePreceding(n: Int): WindowFunctionSpec
> def rowsFollowing(n: Int): WindowFunctionSpec
> }
> df.select(
> df.store,
> df.date,
> df.sales,
> avg(df.sales).over.partitionBy(df.store)
> .orderBy(df.store)
> .rowsFollowing(0) // this means from unbounded preceding to current row
> )
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org