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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。