【问题标题】:RMySQL on Linux (but not OSX or Windows) gives garbage dataLinux(但不是 OSX 或 Windows)上的 RMySQL 提供垃圾数据
【发布时间】:2014-06-27 16:46:30
【问题描述】:

我们有一个 R 程序,它过滤表中的一些数据并使用结果创建一个新表。在 Windows 和 OSX 上,程序运行并且我们的表被正确创建。但是,在我们的 Linux (Ubuntu 12.04) 服务器上,同一个 R 程序会生成一个包含垃圾数据的表。

当我们将 Linux 上产生的垃圾数据与正确的数据进行比较时,我们发现:

  • 列中应包含文本值的看似任意数字
  • 额外的行

我们认为问题出在编码上,但到目前为止,我们更改数据库编码的所有努力都失败了。

我们的 R 脚本使用 RMySQL 连接 MySQL 数据库、过滤内容并将其写入新表(使用 dbReadTabledbWriteTable 命令)。 我们知道命令本身不是问题,因为我们能够在过滤它们之前和之后检查 data.frame - 问题在于dbWriteTable

这两个链接似乎最接近我们问题的解决方案,但我们必须等待拉取请求通过:

  1. https://github.com/jeffreyhorner/RMySQL/issues/6
  2. https://github.com/gagern/RMySQL/commit/b0fbef105ca61d69992a2ec5a5eafde30530b8d5

这些也是相关的:

  1. http://zee.balogh.sk/?p=928
  2. What does character set and collation mean exactly?

【问题讨论】:

  • 没有数据样本(可能还有代码)是相当困难的......

标签: mysql linux windows r rmysql


【解决方案1】:

根据过去的经验,我认为这在dbWriteTable 中不是问题; 甚至不是编码问题!

你在写data.frame的时候很可能有stringsAsFactors = T, 这些数字是因子数。

【讨论】:

    猜你喜欢
    • 2012-09-01
    • 2013-11-02
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-09
    • 2015-04-04
    • 1970-01-01
    相关资源
    最近更新 更多