2017-09-19 4 views
0

Ich versuche, remote eine Verbindung zu einem SQL-Server herzustellen, der eine Speicherprozedur ausführt und eine große Datei als Ausgabe zurückgibt.mySQLdb-Verbindung Gibt eine abgeschnittene Ausgabe zurück

Wenn ich die Datei lokal auf der SQLbox ausführen ist fein und gibt ~ 800.000 Zeilen wie erwartet zurück, aber wenn ich versuche, es mit der mySQLdb-Bibliothek von Python auszuführen, erhält es eine abgeschnittene Ausgabe von nur ~ 6000 Zeilen.

Es läuft gut für kleinere Daten, also ich denke, es gibt ein Ergebnis Limit, das ins Spiel kommt.

Ich bin mir sicher, es gibt eine Eigenschaft, die irgendwo geändert werden muss, aber es scheint keine Dokumentation über die Pypi-Bibliothek bezüglich derselben zu geben.

Zur Erläuterung, ich habe meinen Code unten enthalten:

import MySQLdb 
import pandas as pd 

connection = MySQLdb.connect(sql_server,sql_admin,sql_pw,sql_db) 
sql_command = """call function(4)""" 
return pd.read_sql(sql_command, connection) 

Antwort

0

ich diese mit Cursor lösen konnte. Der Ansatz, den ich gewählt habe, ist unten gezeigt und sollte hoffentlich jedem anderen helfen.

connection = MySQLdb.connect (host = sql_server, user = sql_admin, passwd = sql_pw, db = sql_db) 
cursor = connection.cursor() 
cursor.execute("""call function(4)""") 
data = cursor.fetchall() 

frame = [] 
for row in data: 
    frame.append(row) 
return pd.DataFrame(frame) 

cursor.close() 
# close the connection 
connection.close() 
Verwandte Themen