不能直接从mysql传播数据?

时间:2017-03-09 08:59:43

标签: mysql r dplyr tidyr

我有一个超过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传播组合的核心问题。

0 个答案:

没有答案