當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。