AzureFunctionsにsnowflake-connector-python [pandas]をインストールする

davidkeimes

VSCode拡張機能を使用して紺碧の関数にパンダエクストラを備えたpython-snowflakeコネクタを利用してPythonコードをデプロイしようとしています。関数をローカルで実行すると機能し、デプロイメント自体も機能します

デプロイ中にインストールされた依存関係のrequirements.txtは次のようになります。

azure-functions
xlrd
numpy
pandas
azure-storage-blob
snowflake-connector-python

コードのインポートは次のとおりです。

import numpy as np
import pandas as pd
import azure.storage.blob
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
import snowflake.connector
from snowflake.connector import DictCursor
#from snowflake.connector.pandas_tools import write_pandas

これらの要件により、すべてが機能します。

問題は、スノーフレークコネクタ用のパンダエクストラを含めるように変更するrequirements.txtすぐに(コードで必要です):

azure-functions
xlrd
numpy
pandas
azure-storage-blob
snowflake-connector-python[pandas]

関数を実行しようとすると、次のエラーメッセージが表示されます。

Result: Failure Exception: KeyError: 'snowflake-connector-python' Stack: File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/dispatcher.py", line 262, in _handle__function_load_request func = loader.load_function( File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/utils/wrappers.py", line 32, in call return func(*args, **kwargs) File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/loader.py", line 76, in load_function mod = importlib.import_module(fullmodname) File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1014, in _gcd_import File "<frozen importlib._bootstrap>", line 991, in _find_and_load File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 671, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 783, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "/home/site/wwwroot/HttpTrigger1/__init__.py", line 23, in <module> import snowflake.connector File "/home/site/wwwroot/.python_packages/lib/site-packages/snowflake/connector/__init__.py", line 17, in <module> from .connection import SnowflakeConnection File "/home/site/wwwroot/.python_packages/lib/site-packages/snowflake/connector/connection.py", line 47, in <module> from .cursor import SnowflakeCursor, LOG_MAX_QUERY_LENGTH File "/home/site/wwwroot/.python_packages/lib/site-packages/snowflake/connector/cursor.py", line 48, in <module> from .arrow_result import ArrowResult File "arrow_result.pyx", line 16, in init snowflake.connector.arrow_result File "/home/site/wwwroot/.python_packages/lib/site-packages/snowflake/connector/options.py", line 35, in <module> _pandas_extras = pkg_resources.working_set.by_key['snowflake-connector-python']._dep_map['pandas']

関数を正しく実行する方法に関するヘルプやアイデアはありますか?ありがとうございました!

datamonk

パンダツールのバグのようですが、同じ問題が発生しています。パンダツールを使用する予定があるものによっては、それを回避できる場合があります。

私の関数はSnowflakeにクエリを実行するときにfetch_pandas_all()関数に依存していましたが、基本のsnowflake-connector-pythonパッケージをインストールし、pandasの直接インストールを使用するだけで回避できました。その後、次のコードを使用するようにコードを変更しました。 :

import logging
import snowflake.connector
import pandas as pd

class SnowflakeReader(object):
    def __init__(self, accnt: str, warehouse: str, dbuser: str, pw: str, db: str, dbschema: str):
    self.accnt = accnt
    self.warehouse = warehouse
    self.db = db
    self.dbschema = dbschema
    self.dbuser = dbuser
    self.pw = pw


    def form_connection(self):
        try:
            ctx = snowflake.connector.connect(
                user = self.dbuser,
                password = self.pw,
                account = self.accnt,
                warehouse = self.warehouse,
                database = self.db,
                schema = self.dbschema
            )
        except Exception as e:
            logging.error('Failed to connect to Snowflake: ' + str(e))
        return ctx

    def read_all(self, query: str, conn) -> pd.DataFrame:
        self.query = query
        self.conn = conn

        try:
            cs = conn.cursor()
            sql_cmd = self.query
            cs.execute(sql_cmd)
            result = cs.fetchall()
            result_df = pd.DataFrame(result)
        except Exception as e:
            logging.error('Failed to read from Snowflake: ' + str(e))

        return result_df

write_pandasをインポートしようとしていたようです。これにより、DataFrameをSnowflakeのテーブルに直接書き込むことを望んでいるように思われます。その場合は、古いSQLAlchemyベースのアプローチを使用して同様の回避策を構築するか、DataFrameをdictに変換し、execute()関数を使用して挿入ステートメントに渡すことができる場合があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python 3.5.1用のmysql-connectorをインストールするにはどうすればよいですか?

分類Dev

AzureFunctionsにPythonモジュールをインストールする

分類Dev

mysql-connector-pythonをvirtualenvにインストールできません

分類Dev

mysql-connector-python(開発バージョン)をpip経由でインストールするにはどうすればよいですか?

分類Dev

Python AWS Lambda信号:スノーフレーク接続中に中止(コアダンプ)(snowflake.connector)

分類Dev

snowflake-connector-pythonを使用せずにawslambda関数でsnowflakeに接続するにはどうすればよいですか?

分類Dev

Python3.xでsnowflake-connector-pythonを使用する際の問題

分類Dev

[snowflake python connector ]How to bindings inside a string format

分類Dev

コンテナにインストールされたmysql-connector-pythonを使用してカスタムDockerイメージを作成することはできません

分類Dev

Pythonライブラリmysql.connectorを使用してMySQLデータベースにcsvを挿入する

分類Dev

Raspberry Pi-Python:Python3.5.2にPandasをインストールする

分類Dev

Python MySQL Connectorが時々挿入/更新に失敗する

分類Dev

How can I connect to snowflake in aws lambda function without using snowflake-connector-python?

分類Dev

mysql-connector-pythonを使用してローカルホストに接続できません、エラー1130

分類Dev

Pythonのmysql.connectorで 'fetchall()'を複数ステートメントのMySQLクエリに使用できない

分類Dev

Python3用のmysql-connectorをインストールしようとしています

分類Dev

Python3用のmysql-connectorをインストールしようとしています

分類Dev

Python MySQL Connectorを使用してタイムゾーンをニューヨークに設定するにはどうすればよいですか?

分類Dev

select ... where ...コマンドによるpython.connectorの使用エラー

分類Dev

python MySQL Connector

分類Dev

Python Connector Muleの「AttributeError: 'module'オブジェクトに属性 'SOL_UDP'」エラーを修正する方法

分類Dev

PYTHONからmysql-connectorを使用してMySQLデータベースをjsonにエクスポートする方法は?

分類Dev

mysql.connectorをインポートしてから.exeに変換する

分類Dev

mysql-connector-pythonで接続プールを終了する

分類Dev

HerokuにPythonをサポートするOpenCVをインストールする

分類Dev

Ubuntu19.04でmysql-connector-pythonをアンインストールできません

分類Dev

pipを使用してmysql-connector-pythonをインストールできません

分類Dev

Pythonはmysql.connectorを介してmysqlに変数を挿入します

分類Dev

mysql-connector-python、mysql-connector-python-rf、およびmysql-connector-repackagedの違いは何ですか?

Related 関連記事

  1. 1

    Python 3.5.1用のmysql-connectorをインストールするにはどうすればよいですか?

  2. 2

    AzureFunctionsにPythonモジュールをインストールする

  3. 3

    mysql-connector-pythonをvirtualenvにインストールできません

  4. 4

    mysql-connector-python(開発バージョン)をpip経由でインストールするにはどうすればよいですか?

  5. 5

    Python AWS Lambda信号:スノーフレーク接続中に中止(コアダンプ)(snowflake.connector)

  6. 6

    snowflake-connector-pythonを使用せずにawslambda関数でsnowflakeに接続するにはどうすればよいですか?

  7. 7

    Python3.xでsnowflake-connector-pythonを使用する際の問題

  8. 8

    [snowflake python connector ]How to bindings inside a string format

  9. 9

    コンテナにインストールされたmysql-connector-pythonを使用してカスタムDockerイメージを作成することはできません

  10. 10

    Pythonライブラリmysql.connectorを使用してMySQLデータベースにcsvを挿入する

  11. 11

    Raspberry Pi-Python:Python3.5.2にPandasをインストールする

  12. 12

    Python MySQL Connectorが時々挿入/更新に失敗する

  13. 13

    How can I connect to snowflake in aws lambda function without using snowflake-connector-python?

  14. 14

    mysql-connector-pythonを使用してローカルホストに接続できません、エラー1130

  15. 15

    Pythonのmysql.connectorで 'fetchall()'を複数ステートメントのMySQLクエリに使用できない

  16. 16

    Python3用のmysql-connectorをインストールしようとしています

  17. 17

    Python3用のmysql-connectorをインストールしようとしています

  18. 18

    Python MySQL Connectorを使用してタイムゾーンをニューヨークに設定するにはどうすればよいですか?

  19. 19

    select ... where ...コマンドによるpython.connectorの使用エラー

  20. 20

    python MySQL Connector

  21. 21

    Python Connector Muleの「AttributeError: 'module'オブジェクトに属性 'SOL_UDP'」エラーを修正する方法

  22. 22

    PYTHONからmysql-connectorを使用してMySQLデータベースをjsonにエクスポートする方法は?

  23. 23

    mysql.connectorをインポートしてから.exeに変換する

  24. 24

    mysql-connector-pythonで接続プールを終了する

  25. 25

    HerokuにPythonをサポートするOpenCVをインストールする

  26. 26

    Ubuntu19.04でmysql-connector-pythonをアンインストールできません

  27. 27

    pipを使用してmysql-connector-pythonをインストールできません

  28. 28

    Pythonはmysql.connectorを介してmysqlに変数を挿入します

  29. 29

    mysql-connector-python、mysql-connector-python-rf、およびmysql-connector-repackagedの違いは何ですか?

ホットタグ

アーカイブ