Dataframes Pandas avec le connecteur Snowflake Python
essayer d'obtenir une requête de données pour travailler avec Snowflake en utilisant leur connecteur.
import snowflake.connector as sf
import pandas as pd
import sys
ctx = sf.connect(
user='<user>',
password='<password>',
account='<account>',
warehouse='<warehouse?',
database='<db>',
schema='<schema>',
)
cs = ctx.cursor()
try:
cs.execute('select TOP 5 fish, price from fishtable order by fish;')
df = cs.fetch_pandas_all() #could not get this to work
except Exception as error:
error = sys.exc_info()[0]
message = sys.exc_info()[1]
print(f"Error: {error}\nMessage: {message}")
finally:
ctx.close()
print(cs.rowcount)
print(cs.sfqid)
df
print(cs.rowcount) affiche le total correct de 5.
L'utilisation de sfqid dans la console snowflake renvoie les résultats de la requête comme prévu.
Mais pas de données dans DF...
Modifié : affectation df déplacée dans le "bloc d'essai" mais ne fonctionne toujours pas.
Solution du problème
L'affectation doit être effectuée avant de fermer/supprimer la connexion :
try:
cs.execute('select TOP 5 fish, price from fishtable order by fish;')
df = cs.fetch_pandas_all()
except Exception as error:
error = sys.exc_info()[0]
message = sys.exc_info()[1]
print(f"Error: {error}\nMessage: {message}")
finally:
ctx.close()
df
Commentaires
Enregistrer un commentaire