spark_read_csv的Sparklyr尺寸问题:不适用

时间:2019-02-08 09:40:27

标签: r apache-spark sparklyr

当我在Spark环境中使用spark_read_csv打开一个数据集(.csv)并要求相关的tibble对象的尺寸时,没有行数,但是没有。打开csv文件时缺少什么?

这是我得到的:

data = spark_read_csv(
  spark_conn, name = "Advert", path = "/path/to/file", 
  header = TRUE, delimiter = ","
)

dim(data)
[1] NA  5

1 个答案:

答案 0 :(得分:0)

通常,当您使用由数据库或类似数据库的系统支持的数据时,如果不对查询进行全部或部分评估并为此付出代价,就无法确定行数。

在使用Spark的情况下,这可能意味着要从远程存储中获取数据,进行解析和聚合。

由于nrow / dplyr中的dbplyr(与其他一些考虑内存数据的操作相同)总是返回NA

相反,您可以将dplyr::summarisen一起使用

df <- copy_to(sc, iris)

df %>% summarise(n=n())
# Source: spark<?> [?? x 1]
      n
  <dbl>
1   150

dplyr::count

df %>% count()
# Source: spark<?> [?? x 1]
      n
  <dbl>
1   150

sparklyr::sdf_nrow

df %>% sparklyr::sdf_nrow()
[1] 150

最后一个选项可能就是您想要的。