spark_read_csv 的 Sparklyr 维度问题:NA 结果
Sparklyr dimension issue with spark_read_csv : NA result
当我使用 spark_read_csv 在 Spark 环境中打开数据集 (.csv) 并询问相关 tibble 对象的维度时,没有行数而是 NA。打开 csv 文件时缺少什么?
这是我得到的:
data = spark_read_csv(
spark_conn, name = "Advert", path = "/path/to/file",
header = TRUE, delimiter = ","
)
dim(data)
[1] NA 5
通常,当您使用数据库或类似数据库的系统支持的数据时,如果不对查询进行完整或部分评估并为此操作付出代价,则无法确定行数。
对于 Spark,这可能意味着从远程存储中获取数据、解析和聚合。
因为在 dplyr
/ dbplyr
中 nrow
(与其他一些在设计时考虑到内存中数据的操作相同)总是 returns NA
.
您可以使用 dplyr::summarise
和 n
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
最后一个选项可能就是您要查找的内容。
当我使用 spark_read_csv 在 Spark 环境中打开数据集 (.csv) 并询问相关 tibble 对象的维度时,没有行数而是 NA。打开 csv 文件时缺少什么?
这是我得到的:
data = spark_read_csv(
spark_conn, name = "Advert", path = "/path/to/file",
header = TRUE, delimiter = ","
)
dim(data)
[1] NA 5
通常,当您使用数据库或类似数据库的系统支持的数据时,如果不对查询进行完整或部分评估并为此操作付出代价,则无法确定行数。
对于 Spark,这可能意味着从远程存储中获取数据、解析和聚合。
因为在 dplyr
/ dbplyr
中 nrow
(与其他一些在设计时考虑到内存中数据的操作相同)总是 returns NA
.
您可以使用 dplyr::summarise
和 n
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
最后一个选项可能就是您要查找的内容。