13fd272cd3
### What changes were proposed in this pull request?
This PR intends to fix typos in the sub-modules:
* `R`
* `common`
* `dev`
* `mlib`
* `external`
* `project`
* `streaming`
* `resource-managers`
* `python`
Split per srowen https://github.com/apache/spark/pull/30323#issuecomment-728981618
NOTE: The misspellings have been reported at 706a726f87 (commitcomment-44064356)
### Why are the changes needed?
Misspelled words make it harder to read / understand content.
### Does this PR introduce _any_ user-facing change?
There are various fixes to documentation, etc...
### How was this patch tested?
No testing was performed
Closes #30402 from jsoref/spelling-R_common_dev_mlib_external_project_streaming_resource-managers_python.
Authored-by: Josh Soref <jsoref@users.noreply.github.com>
Signed-off-by: Sean Owen <srowen@gmail.com>
159 lines
5.4 KiB
R
159 lines
5.4 KiB
R
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
# contributor license agreements. See the NOTICE file distributed with
|
|
# this work for additional information regarding copyright ownership.
|
|
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
# (the "License"); you may not use this file except in compliance with
|
|
# the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
context("SerDe functionality")
|
|
|
|
sparkSession <- sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE)
|
|
|
|
test_that("SerDe of primitive types", {
|
|
x <- callJStatic("SparkRHandler", "echo", 1L)
|
|
expect_equal(x, 1L)
|
|
expect_equal(class(x), "integer")
|
|
|
|
x <- callJStatic("SparkRHandler", "echo", 1)
|
|
expect_equal(x, 1)
|
|
expect_equal(class(x), "numeric")
|
|
|
|
x <- callJStatic("SparkRHandler", "echo", TRUE)
|
|
expect_true(x)
|
|
expect_equal(class(x), "logical")
|
|
|
|
x <- callJStatic("SparkRHandler", "echo", "abc")
|
|
expect_equal(x, "abc")
|
|
expect_equal(class(x), "character")
|
|
})
|
|
|
|
test_that("SerDe of multi-element primitive vectors inside R data.frame", {
|
|
# vector of integers embedded in R data.frame
|
|
indices <- 1L:3L
|
|
myDf <- data.frame(indices)
|
|
myDf$data <- list(rep(0L, 3L))
|
|
mySparkDf <- as.DataFrame(myDf)
|
|
myResultingDf <- collect(mySparkDf)
|
|
myDfListedData <- data.frame(indices)
|
|
myDfListedData$data <- list(as.list(rep(0L, 3L)))
|
|
expect_equal(myResultingDf, myDfListedData)
|
|
expect_equal(class(myResultingDf[["data"]][[1]]), "list")
|
|
expect_equal(class(myResultingDf[["data"]][[1]][[1]]), "integer")
|
|
|
|
# vector of numeric embedded in R data.frame
|
|
myDf <- data.frame(indices)
|
|
myDf$data <- list(rep(0, 3L))
|
|
mySparkDf <- as.DataFrame(myDf)
|
|
myResultingDf <- collect(mySparkDf)
|
|
myDfListedData <- data.frame(indices)
|
|
myDfListedData$data <- list(as.list(rep(0, 3L)))
|
|
expect_equal(myResultingDf, myDfListedData)
|
|
expect_equal(class(myResultingDf[["data"]][[1]]), "list")
|
|
expect_equal(class(myResultingDf[["data"]][[1]][[1]]), "numeric")
|
|
|
|
# vector of logical embedded in R data.frame
|
|
myDf <- data.frame(indices)
|
|
myDf$data <- list(rep(TRUE, 3L))
|
|
mySparkDf <- as.DataFrame(myDf)
|
|
myResultingDf <- collect(mySparkDf)
|
|
myDfListedData <- data.frame(indices)
|
|
myDfListedData$data <- list(as.list(rep(TRUE, 3L)))
|
|
expect_equal(myResultingDf, myDfListedData)
|
|
expect_equal(class(myResultingDf[["data"]][[1]]), "list")
|
|
expect_equal(class(myResultingDf[["data"]][[1]][[1]]), "logical")
|
|
|
|
# vector of character embedded in R data.frame
|
|
myDf <- data.frame(indices)
|
|
myDf$data <- list(rep("abc", 3L))
|
|
mySparkDf <- as.DataFrame(myDf)
|
|
myResultingDf <- collect(mySparkDf)
|
|
myDfListedData <- data.frame(indices)
|
|
myDfListedData$data <- list(as.list(rep("abc", 3L)))
|
|
expect_equal(myResultingDf, myDfListedData)
|
|
expect_equal(class(myResultingDf[["data"]][[1]]), "list")
|
|
expect_equal(class(myResultingDf[["data"]][[1]][[1]]), "character")
|
|
})
|
|
|
|
test_that("SerDe of list of primitive types", {
|
|
x <- list(1L, 2L, 3L)
|
|
y <- callJStatic("SparkRHandler", "echo", x)
|
|
expect_equal(x, y)
|
|
expect_equal(class(y[[1]]), "integer")
|
|
|
|
x <- list(1, 2, 3)
|
|
y <- callJStatic("SparkRHandler", "echo", x)
|
|
expect_equal(x, y)
|
|
expect_equal(class(y[[1]]), "numeric")
|
|
|
|
x <- list(TRUE, FALSE)
|
|
y <- callJStatic("SparkRHandler", "echo", x)
|
|
expect_equal(x, y)
|
|
expect_equal(class(y[[1]]), "logical")
|
|
|
|
x <- list("a", "b", "c")
|
|
y <- callJStatic("SparkRHandler", "echo", x)
|
|
expect_equal(x, y)
|
|
expect_equal(class(y[[1]]), "character")
|
|
|
|
# Empty list
|
|
x <- list()
|
|
y <- callJStatic("SparkRHandler", "echo", x)
|
|
expect_equal(x, y)
|
|
})
|
|
|
|
test_that("SerDe of list of lists", {
|
|
x <- list(list(1L, 2L, 3L), list(1, 2, 3),
|
|
list(TRUE, FALSE), list("a", "b", "c"))
|
|
y <- callJStatic("SparkRHandler", "echo", x)
|
|
expect_equal(x, y)
|
|
|
|
# List of empty lists
|
|
x <- list(list(), list())
|
|
y <- callJStatic("SparkRHandler", "echo", x)
|
|
expect_equal(x, y)
|
|
})
|
|
|
|
sparkR.session.stop()
|
|
|
|
# Note that this test should be at the end of tests since the configurations used here are not
|
|
# specific to sessions, and the Spark context is restarted.
|
|
test_that("createDataFrame large objects", {
|
|
for (encryptionEnabled in list("true", "false")) {
|
|
# To simulate a large object scenario, we set spark.r.maxAllocationLimit to a smaller value
|
|
conf <- list(spark.r.maxAllocationLimit = "100",
|
|
spark.io.encryption.enabled = encryptionEnabled)
|
|
|
|
suppressWarnings(sparkR.session(master = sparkRTestMaster,
|
|
sparkConfig = conf,
|
|
enableHiveSupport = FALSE))
|
|
|
|
sc <- getSparkContext()
|
|
actual <- callJStatic("org.apache.spark.api.r.RUtils", "isEncryptionEnabled", sc)
|
|
expected <- as.logical(encryptionEnabled)
|
|
expect_equal(actual, expected)
|
|
|
|
tryCatch({
|
|
# suppress warnings from dot in the field names. See also SPARK-21536.
|
|
df <- suppressWarnings(createDataFrame(iris, numPartitions = 3))
|
|
expect_equal(getNumPartitions(df), 3)
|
|
expect_equal(dim(df), dim(iris))
|
|
|
|
df <- createDataFrame(cars, numPartitions = 3)
|
|
expect_equal(collect(df), cars)
|
|
},
|
|
finally = {
|
|
sparkR.stop()
|
|
})
|
|
}
|
|
})
|