Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从非常大的MySQL转储文件中以csv格式获取数据_Python_Mysql_Sql_Bash - Fatal编程技术网

Python 从非常大的MySQL转储文件中以csv格式获取数据

Python 从非常大的MySQL转储文件中以csv格式获取数据,python,mysql,sql,bash,Python,Mysql,Sql,Bash,我有一个MySQL转储文件,格式为.sql。它的大小约为100GB。int中只有两个表。我必须使用Python或Bash从这个文件中提取数据。问题是insert语句包含所有数据,并且该行太长。因此,正常做法会导致内存问题,因为该行(即,所有数据也在循环中加载) 是否有任何有效的方法或工具将数据获取为CSV 只是一个小小的解释。下面的行包含实际数据,它的大小非常大 INSERT INTO `tblEmployee` VALUES (1,'Nirali','Upadhyay',NULL,NULL,9

我有一个MySQL转储文件,格式为.sql。它的大小约为100GB。int中只有两个表。我必须使用Python或Bash从这个文件中提取数据。问题是insert语句包含所有数据,并且该行太长。因此,正常做法会导致内存问题,因为该行(即,所有数据也在循环中加载)

是否有任何有效的方法或工具将数据获取为CSV

只是一个小小的解释。下面的行包含实际数据,它的大小非常大

INSERT INTO `tblEmployee` VALUES (1,'Nirali','Upadhyay',NULL,NULL,9,'2021-02-08'),(2,'Nirali','Upadhyay',NULL,NULL,9,'2021-02-08'),(3,'Nirali','Upadhyay',NULL,NULL,9,'2021-02-08'),....

问题是,由于资源问题,我无法将其导入MySQL。

我不确定这是否是您想要的,但pandas具有将sql转换为csv的功能。试试这个:

作为pd进口熊猫 导入sqlite3 connect=sqlite3.connectconnections.db cursor=connect.cursor 在数据框中保存sqlite表 dataframe=pd.read_sqlf'SELECT*FROM table',connect 将数据帧写入CSV文件 dataframe.to_csvfilename.csv,index=False 连接。提交 连接,关闭
如果要更改分隔符,可以执行dataframe.to_csvfilename.csv,index=False,sep='3',只需将“3”更改为您的分隔符选项。

MySQL是一个有效的工具。请参阅:是否有任何有效的方法或工具将数据获取为CSV?是否立即从.SQL开始,而不导入数据?移除所有,直到第一次包含,然后用CR替换所有,最终忽略所有;包含全部费用就这些。正如前面提到的,我不能用MySQL来做这个。我必须通过Bash或python来解析它。这可能会有所帮助:它会在数百万条记录之后导致内存问题。