gpt4 book ai didi

r - sparklyr中first,last,nth的使用

转载 作者:行者123 更新时间:2023-12-04 11:25:44 24 4
gpt4 key购买 nike

我已经查看了所有内容,但仍然无法让这三个 dplyr 函数在 sparklyr 中运行。我在下面有一个可重现的例子。首先,一些 session 信息:

R 版本 3.4.3 (2017-11-30)
平台:x86_64-pc-linux-gnu(64 位)
运行于:Red Hat Enterprise Linux Server 7.4 (Maipo)

我正在运行 dplyr 0.7.4、sparklyr 0.8.3、spark 版本 2.2.0

这是在 sparklyr 之外运行 dplyr 代码的(期望的)结果:

set.seed(999)

df <- data.frame(group = letters[rep(1:4, each = 2)],
class = letters[rep(1:4, by = 2)],
value = rnorm(8), stringsAsFactors = FALSE)

> df
group class value
1 a a -0.9677497
2 a b -1.1210094
3 b c 1.3254637
4 b d 0.1339774
5 c a 0.9387494
6 c b 0.1725381
7 d c 0.9576504
8 d d -1.3626862

df %>%
group_by(group) %>%
summarize(value = sum(value),
class = first(class))

# A tibble: 4 x 3
group value class
<chr> <dbl> <chr>
1 a -1.59 a
2 b 1.07 c
3 c -0.843 a
4 d -3.15 c

但是,当我将该 data.frame 复制到 spark 时,结果不是我所期望的:

df <- sdf_copy_to(sc, df, "df", memory = FALSE, overwrite = TRUE)

df %>%
group_by(group) %>%
summarize(value = sum(value),
class = first(class))

# Source: lazy query [?? x 3]
# Database: spark_connection
group value class
<chr> <dbl> <chr>
1 d -3.15 `class`
2 c -0.843 `class`
3 b 1.07 `class`
4 a -1.59 `class`

我也尝试查看是否存在命名空间问题,但并没有解决这个问题:

df %>% 
group_by(group) %>%
summarize(value = sum(value),
class = dplyr::first(class))

Error in x[[n]] : object of type 'builtin' is not subsettable

在我不可重现的示例中,有时我也会收到以下错误,具体取决于我如何更改代码,但我没有在这个示例中显示它。

Error in nth(x, -1L, order_by = order_by, default = default) : 
object 'class' not found

任何帮助(包括替代方案)将不胜感激!

最佳答案

我遇到了同样的问题,这个应该可以。

df %>% 
group_by(group) %>%
summarize(value = sum(value),
class = first_value(class))

它适用于字符列或数字列。

顺便说一下,我使用的是 dplyr 0.8.0.1 和 sparklyr 0.9.4

关于r - sparklyr中first,last,nth的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51486774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com