【发布时间】:2019-11-15 15:41:08
【问题描述】:
我正在研究 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
【问题讨论】:
-
是的,
tidyr::spread()不起作用。你可以使用sdf_pivot。 -
也许你正试图在你使用
as_tibble的地方做aux <- df_phoenix %>% collect()。
标签: r apache-spark-sql tidyr sparklyr tibble