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

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"