使用IMDbPY脚本导入IMDb文件时出现内存错误

时间:2015-06-18 17:38:50

标签: mysql ubuntu amazon-ec2 imdbpy

使用MyISAM存储引擎将IMDb文件导入MySQL 5时出现以下内存错误:

Traceback (most recent call last):
  File "/usr/local/bin/imdbpy2sql.py", line 3072, in <module>
    run()
  File "/usr/local/bin/imdbpy2sql.py", line 2937, in run
    readMovieList()
  File "/usr/local/bin/imdbpy2sql.py", line 1531, in readMovieList
    mid = CACHE_MID.addUnique(title, yearData)
  File "/usr/local/bin/imdbpy2sql.py", line 1135, in addUnique
    else: return self.add(key, miscData)
  File "/usr/local/bin/imdbpy2sql.py", line 1010, in add
    self[key] = c
  File "/usr/local/bin/imdbpy2sql.py", line 922, in __setitem__
    dict.__setitem__(self, key, counter)
MemoryError

这是在Ubuntu 14.0.4上的AWS上的EC2实例,内存为1GB。我首先尝试使用此命令:

imdbpy2sql.py --mysql-force-myisam -d /home/ubuntu/imdb-files/ -u mysql://admin:password@localhost/imdb

还有:

imdbpy2sql.py --mysql-force-myisam -d /home/ubuntu/imdb-files/ -u mysql://admin:password@localhost/imdb -c /home/ubuntu/imdb-files/csv

两者都因相同的内存错误而失败。有人知道解决方法吗?

更新(2015年6月20日):

它总是在同一点产生这个内存错误。这是它填充的标题表的MySQL表状态。

|名称|发动机|版本| Row_format |行| Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | AUTO_INCREMENT

|标题| MyISAM | 10 |动态| 2699999 | 83 | 226543136 | 281474976710655 | 32410624 | 0 | 2700000

imdbpy2sql.py的内存使用率约为62%。我不是Python pseron所以不确定如何调试它所以任何输入都将非常感激。

1 个答案:

答案 0 :(得分:0)

我担心1 GB的总RAM不足以安全地运行imdbpy2sql.py。也许你可以尝试不同的实例或在你的系统中添加一个交换文件(这显然会减慢一切)。