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


R SparkR merge用法及代碼示例


說明:

合並兩個 DataFrame

用法:

merge(x, y, ...)

## S4 method for signature 'SparkDataFrame,SparkDataFrame'
merge(
  x,
  y,
  by = intersect(names(x), names(y)),
  by.x = by,
  by.y = by,
  all = FALSE,
  all.x = all,
  all.y = all,
  sort = TRUE,
  suffixes = c("_x", "_y"),
  ...
)

參數:

  • x 要連接的第一個 DataFrame 。
  • y 要連接的第二個 DataFrame 。
  • ... 傳遞給方法的附加參數。
  • by 指定連接列的字符向量。如果未指定 by,將使用 xy 中的公共列名。如果 by 或 by.x 和 by.y 都顯式設置為 NULL 或長度為 0,則將返回 x 和 y 的笛卡爾積。
  • by.x 一個字符向量,指定 x 的連接列。
  • by.y 一個字符向量,指定 y 的連接列。
  • all 布爾值設置 all.xall.y 如果其中任何一個未設置。
  • all.x 一個布爾值,指示 x 中的所有行是否都應包含在連接中。
  • all.y 一個布爾值,指示 y 中的所有行是否都應包含在連接中。
  • sort 一個邏輯參數,指示是否應該對結果列進行排序。
  • suffixes 長度為 2 的字符串向量,用於使 xy 的列名唯一。第一個元素附加到 x 的每個列名。第二個元素附加到 y 的每個列名。

細節:

如果 all.x 和 all.y 設置為 FALSE,將返回自然連接。如果 all.x 設置為 TRUE 並且 all.y 設置為 FALSE,則將返回左外連接。如果 all.x 設置為 FALSE 並且 all.y 設置為 TRUE,則將返回右外連接。如果 all.x 和 all.y 設置為 TRUE,則將返回完全外連接。

注意:

從 1.5.0 開始合並

例子:

sparkR.session()
df1 <- read.json(path)
df2 <- read.json(path2)
merge(df1, df2) # Performs an inner join by common columns
merge(df1, df2, by = "col1") # Performs an inner join based on expression
merge(df1, df2, by.x = "col1", by.y = "col2", all.y = TRUE)
merge(df1, df2, by.x = "col1", by.y = "col2", all.x = TRUE)
merge(df1, df2, by.x = "col1", by.y = "col2", all.x = TRUE, all.y = TRUE)
merge(df1, df2, by.x = "col1", by.y = "col2", all = TRUE, sort = FALSE)
merge(df1, df2, by = "col1", all = TRUE, suffixes = c("-X", "-Y"))
merge(df1, df2, by = NULL) # Performs a Cartesian join

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 Merges two data frames。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。