aboutsummaryrefslogtreecommitdiff
path: root/docs/sparkr.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/sparkr.md')
-rw-r--r--docs/sparkr.md107
1 files changed, 53 insertions, 54 deletions
diff --git a/docs/sparkr.md b/docs/sparkr.md
index dfa5278ef8..4bbc362c52 100644
--- a/docs/sparkr.md
+++ b/docs/sparkr.md
@@ -322,8 +322,59 @@ head(ldf, 3)
Apply a function to each group of a `SparkDataFrame`. The function is to be applied to each group of the `SparkDataFrame` and should have only two parameters: grouping key and R `data.frame` corresponding to
that key. The groups are chosen from `SparkDataFrame`s column(s).
The output of function should be a `data.frame`. Schema specifies the row format of the resulting
-`SparkDataFrame`. It must represent R function's output schema on the basis of Spark data types. The column names of the returned `data.frame` are set by user. Below is the data type mapping between R
-and Spark.
+`SparkDataFrame`. It must represent R function's output schema on the basis of Spark [data types](#data-type-mapping-between-r-and-spark). The column names of the returned `data.frame` are set by user.
+
+<div data-lang="r" markdown="1">
+{% highlight r %}
+
+# Determine six waiting times with the largest eruption time in minutes.
+schema <- structType(structField("waiting", "double"), structField("max_eruption", "double"))
+result <- gapply(
+ df,
+ "waiting",
+ function(key, x) {
+ y <- data.frame(key, max(x$eruptions))
+ },
+ schema)
+head(collect(arrange(result, "max_eruption", decreasing = TRUE)))
+
+## waiting max_eruption
+##1 64 5.100
+##2 69 5.067
+##3 71 5.033
+##4 87 5.000
+##5 63 4.933
+##6 89 4.900
+{% endhighlight %}
+</div>
+
+##### gapplyCollect
+Like `gapply`, applies a function to each partition of a `SparkDataFrame` and collect the result back to R data.frame. The output of the function should be a `data.frame`. But, the schema is not required to be passed. Note that `gapplyCollect` can fail if the output of UDF run on all the partition cannot be pulled to the driver and fit in driver memory.
+
+<div data-lang="r" markdown="1">
+{% highlight r %}
+
+# Determine six waiting times with the largest eruption time in minutes.
+result <- gapplyCollect(
+ df,
+ "waiting",
+ function(key, x) {
+ y <- data.frame(key, max(x$eruptions))
+ colnames(y) <- c("waiting", "max_eruption")
+ y
+ })
+head(result[order(result$max_eruption, decreasing = TRUE), ])
+
+## waiting max_eruption
+##1 64 5.100
+##2 69 5.067
+##3 71 5.033
+##4 87 5.000
+##5 63 4.933
+##6 89 4.900
+
+{% endhighlight %}
+</div>
#### Data type mapping between R and Spark
<table class="table">
@@ -394,58 +445,6 @@ and Spark.
</tr>
</table>
-<div data-lang="r" markdown="1">
-{% highlight r %}
-
-# Determine six waiting times with the largest eruption time in minutes.
-schema <- structType(structField("waiting", "double"), structField("max_eruption", "double"))
-result <- gapply(
- df,
- "waiting",
- function(key, x) {
- y <- data.frame(key, max(x$eruptions))
- },
- schema)
-head(collect(arrange(result, "max_eruption", decreasing = TRUE)))
-
-## waiting max_eruption
-##1 64 5.100
-##2 69 5.067
-##3 71 5.033
-##4 87 5.000
-##5 63 4.933
-##6 89 4.900
-{% endhighlight %}
-</div>
-
-##### gapplyCollect
-Like `gapply`, applies a function to each partition of a `SparkDataFrame` and collect the result back to R data.frame. The output of the function should be a `data.frame`. But, the schema is not required to be passed. Note that `gapplyCollect` can fail if the output of UDF run on all the partition cannot be pulled to the driver and fit in driver memory.
-
-<div data-lang="r" markdown="1">
-{% highlight r %}
-
-# Determine six waiting times with the largest eruption time in minutes.
-result <- gapplyCollect(
- df,
- "waiting",
- function(key, x) {
- y <- data.frame(key, max(x$eruptions))
- colnames(y) <- c("waiting", "max_eruption")
- y
- })
-head(result[order(result$max_eruption, decreasing = TRUE), ])
-
-## waiting max_eruption
-##1 64 5.100
-##2 69 5.067
-##3 71 5.033
-##4 87 5.000
-##5 63 4.933
-##6 89 4.900
-
-{% endhighlight %}
-</div>
-
#### Run local R functions distributed using `spark.lapply`
##### spark.lapply