我有两个表:trainSearcStream和SearchInfo。我的代码应该基于名为SearchID的公共列合并两个表。问题是代码运行了一段时间然后终止而没有在我的eclipse控制台中报告任何错误。每个表中的数字或行是:trainSearchStream | 392,356,948和 SearchInfo | 112159462。我的数据库(包括其他表)的大小是40GB。 更新:当我在终端中运行代码时,我收到一条消息:'killed:9'
import pandas as pd
import sqlite3
# Create connection.
con = sqlite3.connect(path + 'database.sqlite')
#read into a data frame
df = pd.read_sql_query("SELECT * FROM trainSearchStream, SearchInfo WHERE trainSearchStream.SearchID = SearchInfo.SearchID;", con)
#save to file
df.to_csv(path + 'traindata.csv',index=False,encoding='utf-8')
答案 0 :(得分:1)
如前所述,我认为最好的方法是直接使用sqlite而不是python。
所以解决方法是,我猜,this:
sqlite> .mode csv
sqlite> .output test.csv
sqlite> SELECT * FROM trainSearchStream, SearchInfo WHERE trainSearchStream.SearchID = SearchInfo.SearchID; /*your query here*/
sqlite> .output stdout
很抱歉,这不是答案,但使用代码进行评论会破坏缩进,我们正在使用python ......
你可以运行这个并给我们输出吗? (打印的是什么)
import pandas as pd
import sqlite3
# Create connection.
con = sqlite3.connect(path + 'database.sqlite')
try:
df = pd.read_sql_query("SELECT * FROM trainSearchStream, SearchInfo WHERE trainSearchStream.SearchID = SearchInfo.SearchID;", con)
print "read_sql_query went well"
except Exception, e:
print "read_sql_query failed: "+ str(e))
try:
df.to_csv(path + 'traindata.csv',index=False,encoding='utf-8')
print "to_csv went well"
except Exception, e:
print "to_csv failed: "+ str(e))