如何使用 sparklyr 在 R 中操作 Spark Dataframe?
How to manipulate Spark Dataframe in R with sparklyr?
我正在 Spark 环境中工作,我正在尝试处理一些来自 tbl_spark 的数据。问题是我不能对它应用任何常用的数据操作函数。
我用 df <- spark_read_table(sc,"tb_krill_sensordatatable_phoenix")
导入它,似乎成功了,但是,当我尝试用 tidyr::spread()
旋转它时,它说该方法不适用于 tbl_spark的。
我现在要做的是:df_tbl <- as_tibble(df)
。但是,现在已经 运行 几个小时了,什么也没发生。
我不知道我是否应该使用 spark_read_table() 以外的其他函数来导入它,或者我是否应该在 R 中转换为另一种常用的数据帧格式。
df_phoenix <- spark_read_table(sc,"tb_krill_sensordatatable_phoenix")
class(df_phoenix)
# [1] "tbl_spark" "tbl_sql" "tbl_lazy" "tbl"
base_spread <- df_phoenix %>%
spread(key = sensorname, value = sensorvalue)
#Error in UseMethod("spread_") :
# no applicable method for 'spread_' applied to an object of class "c('tbl_spark', 'tbl_sql', 'tbl_lazy', 'tbl')"
aux <- as_tibble(df_phoenix)
#this one takes forever and nothing happens
也许试试
base_spread <- df_phoenix %>%
sdf_pivot(sensorvalue ~ sensorname, fun.aggregate = list(Value = "first"))
获得与 tidyr:spread
相同的功能。
如果您想使用 tidyr
函数,您必须将数据导入 R,这可以使用
来完成
df <- df_phoenix %>% collect()
我正在 Spark 环境中工作,我正在尝试处理一些来自 tbl_spark 的数据。问题是我不能对它应用任何常用的数据操作函数。
我用 df <- spark_read_table(sc,"tb_krill_sensordatatable_phoenix")
导入它,似乎成功了,但是,当我尝试用 tidyr::spread()
旋转它时,它说该方法不适用于 tbl_spark的。
我现在要做的是:df_tbl <- as_tibble(df)
。但是,现在已经 运行 几个小时了,什么也没发生。
我不知道我是否应该使用 spark_read_table() 以外的其他函数来导入它,或者我是否应该在 R 中转换为另一种常用的数据帧格式。
df_phoenix <- spark_read_table(sc,"tb_krill_sensordatatable_phoenix")
class(df_phoenix)
# [1] "tbl_spark" "tbl_sql" "tbl_lazy" "tbl"
base_spread <- df_phoenix %>%
spread(key = sensorname, value = sensorvalue)
#Error in UseMethod("spread_") :
# no applicable method for 'spread_' applied to an object of class "c('tbl_spark', 'tbl_sql', 'tbl_lazy', 'tbl')"
aux <- as_tibble(df_phoenix)
#this one takes forever and nothing happens
也许试试
base_spread <- df_phoenix %>%
sdf_pivot(sensorvalue ~ sensorname, fun.aggregate = list(Value = "first"))
获得与 tidyr:spread
相同的功能。
如果您想使用 tidyr
函数,您必须将数据导入 R,这可以使用
df <- df_phoenix %>% collect()