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

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

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

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables