2015-07-21 22 views
0

我從R導出2GB數據幀到MySQL。我的每一列都有很多值。雖然來自R將數據導出到MySQL我收到以下錯誤:如何將列中的列轉換爲R中的BLOB,然後將其導出到MySQL中

could not run statement: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline. 

命令我使用:

dbWriteTable(conn = con, name = 'tablename', value = as.data.frame(cc)) 

我使用RMySQL包將數據導出到MySQL數據庫。我沒有在MySQL數據庫中創建表。我直接從R創建表。 我可以將列的類類型更改爲R中的BLOB嗎? 如何處理它?

+0

需要更多細節。 「將數據從R導出到MySQL」 - 如何?在R中使用特定的包?什麼包?什麼命令? –

+0

感謝您的建議。我剛剛編輯了我的問題 – liferacer

回答

0

沒有reproducible example這是有點難以分辨,但我相信你可以通過field.types變量dbWriteTable。有關field.types的說明,請參閱?mysqlBuildTableDefinition - 它應該是一個包含數據類型的命名列表。 This question也可能會幫助你。

例如如果您的列被稱爲bigblob你會做

dbWriteTable(conn=con, name='tablename', value=as.data.frame(cc), 
      field.types=list(bigblob='BLOB', 
           # types for all your other columns too 
      )) 

我相信,如果你指定類型的一列,你必須爲所有其他人也指定類型。

相關問題