我有一个超过2G的数据集,并希望在不触及MySQL效率或RAM限制问题的情况下进行一些调整。
>con <- src_mysql(dbname="data")
>dt <- con %>% tbl<"data">
# Source: query [?? x 11]
# Database: mysql 5.7.17-log [root@localhost:/data]
#
# No ID DATA UNIT RECORD
# <int> <chr> <chr> <chr> <chr>
# 1 1 U1234 12 Xtm 2014-11-02T17:58:17Z
# 2 2 U1234 3.461 RSD 2014-11-02T17:58:17Z
# 3 3 U1234 9 Xtm 2014-11-02T17:58:17Z
# 4 4 U1234 0.329 RSD 2014-11-02T17:58:17Z
# 5 5 U1234 55 Xtm 2014-11-02T17:58:17Z
# 6 6 U1234 1.174 RSD 2014-11-02T17:58:17Z
# 7 7 U1234 63 Xtm 2014-11-02T17:58:17Z
# 8 8 U1234 6.110 RSD 2014-11-02T17:58:17Z
# 9 9 U1234 33 Xtm 2014-11-02T17:58:17Z
# 10 10 U1234 3.072 RSD 2014-11-02T17:58:17Z
# ... with more rows
尝试根据UNIT(Xtm,RSD)将数据扩展到2个列,但总是得到错误消息,
Error: Key column 'UNIT' does not exist in input.
我的问题是如何在没有从MySQL加载整个数据集的情况下传播表?说,
dt2 <- con %>% tbl("data") %>% spread(UNIT,DATA) ## which is not correct.
我希望新数据集为:
# No ID Xtm RSD RECORD
# <int> <chr> <chr><chr> <chr>
# 1 1 U1234 12 3.41 2014-11-02T17:58:17Z
`我想知道错误的消息是否与col名称相关&#39; UNIT&#39;保留,但即使我重命名它,错误消息仍然弹出。试图在世界各地搜索几天,并且找不到很少的信息。
请帮忙。
PS。早些时候我问了这个问题,但错误地标记了答案。答案很好,但没有触及有关MySQL传播组合的核心问题。