当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R SparkR dapply用法及代码示例


说明:

将函数应用于 SparkDataFrame 的每个分区。

用法:

dapply(x, func, schema)

## S4 method for signature 'SparkDataFrame,'function',characterOrstructType'
dapply(x, func, schema)

参数:

  • x 一个 SparkDataFrame
  • func 要应用于 SparkDataFrame 的每个分区的函数。 func 应该只有一个参数,每个分区对应的 R data.frame 将被传递给该参数。 func 的输出应该是一个 R data.frame。
  • schema 应用函数后生成的 SparkDataFrame 的架构。它必须匹配 func 的输出。从 Spark 2.3 开始,模式也支持 DDL 格式的字符串。

注意:

dapply 自 2.0.0 起

例子:

df <- createDataFrame(iris)
  df1 <- dapply(df, function(x) { x }, schema(df))
  collect(df1)

  # filter and add a column
  df <- createDataFrame(
          list(list(1L, 1, "1"), list(2L, 2, "2"), list(3L, 3, "3")),
          c("a", "b", "c"))
  schema <- structType(structField("a", "integer"), structField("b", "double"),
                     structField("c", "string"), structField("d", "integer"))
  df1 <- dapply(
           df,
           function(x) {
             y <- x[x[1] > 1, ]
             y <- cbind(y, y[1] + 1L)
           },
           schema)

  # The schema also can be specified in a DDL-formatted string.
  schema <- "a INT, d DOUBLE, c STRING, d INT"
  df1 <- dapply(
           df,
           function(x) {
             y <- x[x[1] > 1, ]
             y <- cbind(y, y[1] + 1L)
           },
           schema)

  collect(df1)
  # the result
  #       a b c d
  #     1 2 2 2 3
  #     2 3 3 3 4

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 dapply。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。