Spark DataFrame 的最后一行(使用 sparklyr & dplyr)
Last Rows from a Spark DataFrame (using sparklyr & dplyr)
想使用 sparklyr 按行范围使用下面的 tail function
之类的东西打印下面数据框的最后 50 行,没有 arrange
或 collect
-- 我的一些框架很大,没有连续的列。
library(sparklyr)
library(dplyr)
library(Lahman)
spark_install(version = "2.0.0")
sc <- spark_connect(master = "local")
batting_tbl <- copy_to(sc, Lahman::Batting, "batting"); batting_tbl
batting_tbl %>% count # Number of rows
# n
# <dbl>
# 1 101332
batting_tbl %>% tail(., n = 50)
# Error: tail() is not supported by sql sources
这是一种解决方案(returns 未排序的尾巴):
tbl_df(batting_tbl) %>% slice(101282:101332) # Prints the last 50 rows
这是第二个解决方案(过滤器索引):
tbl_df(batting_tbl) %>% arrange(-as.numeric(rownames(.))) %>% head(., n = 50)
**注意:以上两者都需要 tbl_df
,而 batting_tbl %>% head(., n = 50)
不需要 collection 到 R data.frame,并且往往花费更少的时间计算。感谢@user6910411 指出 monotonically_increasing_id()
或类似的东西将 return Spark 数据帧而不是 R data.frame returned by collect()
.
这 return 尾部(或接近尾部),首先打印最后的索引值,并避免 collection 到 R data.frame:
sdf_with_unique_id(batting_tbl, id = "id") %>% arrange(-id) # Id column for sorting
想使用 sparklyr 按行范围使用下面的 tail function
之类的东西打印下面数据框的最后 50 行,没有 arrange
或 collect
-- 我的一些框架很大,没有连续的列。
library(sparklyr)
library(dplyr)
library(Lahman)
spark_install(version = "2.0.0")
sc <- spark_connect(master = "local")
batting_tbl <- copy_to(sc, Lahman::Batting, "batting"); batting_tbl
batting_tbl %>% count # Number of rows
# n
# <dbl>
# 1 101332
batting_tbl %>% tail(., n = 50)
# Error: tail() is not supported by sql sources
这是一种解决方案(returns 未排序的尾巴):
tbl_df(batting_tbl) %>% slice(101282:101332) # Prints the last 50 rows
这是第二个解决方案(过滤器索引):
tbl_df(batting_tbl) %>% arrange(-as.numeric(rownames(.))) %>% head(., n = 50)
**注意:以上两者都需要 tbl_df
,而 batting_tbl %>% head(., n = 50)
不需要 collection 到 R data.frame,并且往往花费更少的时间计算。感谢@user6910411 指出 monotonically_increasing_id()
或类似的东西将 return Spark 数据帧而不是 R data.frame returned by collect()
.
这 return 尾部(或接近尾部),首先打印最后的索引值,并避免 collection 到 R data.frame:
sdf_with_unique_id(batting_tbl, id = "id") %>% arrange(-id) # Id column for sorting