-
Notifications
You must be signed in to change notification settings - Fork 28.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SparkR][Doc] fix typo in vignettes #17884
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -65,7 +65,7 @@ We can view the first few rows of the `SparkDataFrame` by `head` or `showDF` fun | |
head(carsDF) | ||
``` | ||
|
||
Common data processing operations such as `filter`, `select` are supported on the `SparkDataFrame`. | ||
Common data processing operations such as `filter` and `select` are supported on the `SparkDataFrame`. | ||
```{r} | ||
carsSubDF <- select(carsDF, "model", "mpg", "hp") | ||
carsSubDF <- filter(carsSubDF, carsSubDF$hp >= 200) | ||
|
@@ -379,7 +379,7 @@ out <- dapply(carsSubDF, function(x) { x <- cbind(x, x$mpg * 1.61) }, schema) | |
head(collect(out)) | ||
``` | ||
|
||
Like `dapply`, apply a function to each partition of a `SparkDataFrame` and collect the result back. The output of function should be a `data.frame`, but no schema is required in this case. Note that `dapplyCollect` can fail if the output of UDF run on all the partition cannot be pulled to the driver and fit in driver memory. | ||
Like `dapply`, `dapplyCollect` can apply a function to each partition of a `SparkDataFrame` and collect the result back. The output of the function should be a `data.frame`, but no schema is required in this case. Note that `dapplyCollect` can fail if the output of the UDF on all partitions cannot be pulled into the driver's memory. | ||
|
||
```{r} | ||
out <- dapplyCollect( | ||
|
@@ -405,7 +405,7 @@ result <- gapply( | |
head(arrange(result, "max_mpg", decreasing = TRUE)) | ||
``` | ||
|
||
Like gapply, `gapplyCollect` 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 no schema is required in this case. 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. | ||
Like gapply, `gapplyCollect` 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 no schema is required in this case. Note that `gapplyCollect` can fail if the output of the UDF on all partitions cannot be pulled into the driver's memory. | ||
|
||
```{r} | ||
result <- gapplyCollect( | ||
|
@@ -458,20 +458,20 @@ options(ops) | |
|
||
|
||
### SQL Queries | ||
A `SparkDataFrame` can also be registered as a temporary view in Spark SQL and that allows you to run SQL queries over its data. The sql function enables applications to run SQL queries programmatically and returns the result as a `SparkDataFrame`. | ||
A `SparkDataFrame` can also be registered as a temporary view in Spark SQL so that one can run SQL queries over its data. The sql function enables applications to run SQL queries programmatically and returns the result as a `SparkDataFrame`. | ||
|
||
```{r} | ||
people <- read.df(paste0(sparkR.conf("spark.home"), | ||
"/examples/src/main/resources/people.json"), "json") | ||
``` | ||
|
||
Register this SparkDataFrame as a temporary view. | ||
Register this `SparkDataFrame` as a temporary view. | ||
|
||
```{r} | ||
createOrReplaceTempView(people, "people") | ||
``` | ||
|
||
SQL statements can be run by using the sql method. | ||
SQL statements can be run using the sql method. | ||
```{r} | ||
teenagers <- sql("SELECT name FROM people WHERE age >= 13 AND age <= 19") | ||
head(teenagers) | ||
|
@@ -780,7 +780,7 @@ head(predict(isoregModel, newDF)) | |
`spark.gbt` fits a [gradient-boosted tree](https://en.wikipedia.org/wiki/Gradient_boosting) classification or regression model on a `SparkDataFrame`. | ||
Users can call `summary` to get a summary of the fitted model, `predict` to make predictions, and `write.ml`/`read.ml` to save/load fitted models. | ||
|
||
Similar to the random forest example above, we use the `longley` dataset to train a gradient-boosted tree and make predictions: | ||
We use the `longley` dataset to train a gradient-boosted tree and make predictions: | ||
|
||
```{r, warning=FALSE} | ||
df <- createDataFrame(longley) | ||
|
@@ -851,9 +851,9 @@ head(select(kmeansPredictions, "model", "mpg", "hp", "wt", "prediction"), n = 20 | |
|
||
* Topics and documents both exist in a feature space, where feature vectors are vectors of word counts (bag of words). | ||
|
||
* Rather than estimating a clustering using a traditional distance, LDA uses a function based on a statistical model of how text documents are generated. | ||
* Rather than clustering using a traditional distance, LDA uses a function based on a statistical model of how text documents are generated. | ||
|
||
To use LDA, we need to specify a `features` column in `data` where each entry represents a document. There are two type options for the column: | ||
To use LDA, we need to specify a `features` column in `data` where each entry represents a document. There are two options for the column: | ||
|
||
* character string: This can be a string of the whole document. It will be parsed automatically. Additional stop words can be added in `customizedStopWords`. | ||
|
||
|
@@ -901,7 +901,7 @@ perplexity | |
|
||
`spark.als` learns latent factors in [collaborative filtering](https://en.wikipedia.org/wiki/Recommender_system#Collaborative_filtering) via [alternating least squares](http://dl.acm.org/citation.cfm?id=1608614). | ||
|
||
There are multiple options that can be configured in `spark.als`, including `rank`, `reg`, `nonnegative`. For a complete list, refer to the help file. | ||
There are multiple options that can be configured in `spark.als`, including `rank`, `reg`, and `nonnegative`. For a complete list, refer to the help file. | ||
|
||
```{r, eval=FALSE} | ||
ratings <- list(list(0, 0, 4.0), list(0, 1, 2.0), list(1, 1, 3.0), list(1, 2, 4.0), | ||
|
@@ -981,7 +981,7 @@ testSummary | |
|
||
|
||
### Model Persistence | ||
The following example shows how to save/load an ML model by SparkR. | ||
The following example shows how to save/load an ML model in SparkR. | ||
```{r} | ||
t <- as.data.frame(Titanic) | ||
training <- createDataFrame(t) | ||
|
@@ -1079,19 +1079,19 @@ There are three main object classes in SparkR you may be working with. | |
+ `sdf` stores a reference to the corresponding Spark Dataset in the Spark JVM backend. | ||
+ `env` saves the meta-information of the object such as `isCached`. | ||
|
||
It can be created by data import methods or by transforming an existing `SparkDataFrame`. We can manipulate `SparkDataFrame` by numerous data processing functions and feed that into machine learning algorithms. | ||
It can be created by data import methods or by transforming an existing `SparkDataFrame`. We can manipulate `SparkDataFrame` by numerous data processing functions and feed that into machine learning algorithms. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. just curious, does this whitespace in front of paragraph get handled properly? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @felixcheung Yes, the four spaces indicate that the text following should be aligned with the bullet point. Otherwise, it will start as a new paragraph and have the wrong indention. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. cool! thanks |
||
|
||
* `Column`: an S4 class representing column of `SparkDataFrame`. The slot `jc` saves a reference to the corresponding Column object in the Spark JVM backend. | ||
* `Column`: an S4 class representing a column of `SparkDataFrame`. The slot `jc` saves a reference to the corresponding `Column` object in the Spark JVM backend. | ||
|
||
It can be obtained from a `SparkDataFrame` by `$` operator, `df$col`. More often, it is used together with other functions, for example, with `select` to select particular columns, with `filter` and constructed conditions to select rows, with aggregation functions to compute aggregate statistics for each group. | ||
It can be obtained from a `SparkDataFrame` by `$` operator, e.g., `df$col`. More often, it is used together with other functions, for example, with `select` to select particular columns, with `filter` and constructed conditions to select rows, with aggregation functions to compute aggregate statistics for each group. | ||
|
||
* `GroupedData`: an S4 class representing grouped data created by `groupBy` or by transforming other `GroupedData`. Its `sgd` slot saves a reference to a RelationalGroupedDataset object in the backend. | ||
* `GroupedData`: an S4 class representing grouped data created by `groupBy` or by transforming other `GroupedData`. Its `sgd` slot saves a reference to a `RelationalGroupedDataset` object in the backend. | ||
|
||
This is often an intermediate object with group information and followed up by aggregation operations. | ||
This is often an intermediate object with group information and followed up by aggregation operations. | ||
|
||
### Architecture | ||
|
||
A complete description of architecture can be seen in reference, in particular the paper *SparkR: Scaling R Programs with Spark*. | ||
A complete description of architecture can be seen in the references, in particular the paper *SparkR: Scaling R Programs with Spark*. | ||
|
||
Under the hood of SparkR is Spark SQL engine. This avoids the overheads of running interpreted R code, and the optimized SQL execution engine in Spark uses structural information about data and computation flow to perform a bunch of optimizations to speed up the computation. | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
could you add backtick to gapply at the beginning
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.