sparkR - 列表中的子集值
sparkR - subset values in list
如何为 spark 数据框执行以下任务。
在 dplyr 中,我会这样做:
library(dplyr)
df1 <- data.frame(x = 1:10, y = 101:110)
df2 <- data.frame(r = 5:10, s = 205:210)
df3 <- df1 %>% filter(x %in% df2$r)
如何为 sparkR 数据帧执行 filter(x %in% df2$r) 命令?
我刚刚有类似的问题,这似乎适用于从列表中过滤:
df3 <- filter(df1, ("x in ('string1','string2','string3')"))
对于您的情况,您可能需要考虑加入
df3 <- drop(join(df1, SparkR::distinct(SparkR::select(df2,'r')), df1$x==df2$r),'r')
(虽然可能有点太贵了)..
干杯,
安娜
要么不将查找转换为 SparkDataFrame
:
> df1 <- createDataFrame(data.frame(x = 1:10, y = 101:110))
> df2 <- data.frame(r = 5:10, s = 205:210)
> filter(df1, df1$x %in% df2$r)
SparkDataFrame[x:int, y:int]
或将两者都转换为 join
:
> df1 <- createDataFrame(data.frame(x = 1:10, y = 101:110))
> df2 <- createDataFrame(data.frame(r = 5:10, s = 205:210))
> join(df1, df2, df1$x == df2$r, "leftsemi")
SparkDataFrame[x:int, y:int]
并且不要将 dplyr
与 SparkR 一起使用。对于 dplyr
兼容 API 使用 sparklyr
.
如何为 spark 数据框执行以下任务。 在 dplyr 中,我会这样做:
library(dplyr)
df1 <- data.frame(x = 1:10, y = 101:110)
df2 <- data.frame(r = 5:10, s = 205:210)
df3 <- df1 %>% filter(x %in% df2$r)
如何为 sparkR 数据帧执行 filter(x %in% df2$r) 命令?
我刚刚有类似的问题,这似乎适用于从列表中过滤:
df3 <- filter(df1, ("x in ('string1','string2','string3')"))
对于您的情况,您可能需要考虑加入
df3 <- drop(join(df1, SparkR::distinct(SparkR::select(df2,'r')), df1$x==df2$r),'r')
(虽然可能有点太贵了)..
干杯, 安娜
要么不将查找转换为 SparkDataFrame
:
> df1 <- createDataFrame(data.frame(x = 1:10, y = 101:110))
> df2 <- data.frame(r = 5:10, s = 205:210)
> filter(df1, df1$x %in% df2$r)
SparkDataFrame[x:int, y:int]
或将两者都转换为 join
:
> df1 <- createDataFrame(data.frame(x = 1:10, y = 101:110))
> df2 <- createDataFrame(data.frame(r = 5:10, s = 205:210))
> join(df1, df2, df1$x == df2$r, "leftsemi")
SparkDataFrame[x:int, y:int]
并且不要将 dplyr
与 SparkR 一起使用。对于 dplyr
兼容 API 使用 sparklyr
.