使用Python将数据写入Snowflake表

kq4fsx7k  于 6个月前  发布在  Python
关注(0)|答案(2)|浏览(56)

我试图从Excel中读取数据到pandas中间帧,然后将中间帧写入Snowflake表。代码如下。连接已建立,Excel读取工作正常,但写入Snowflake表不工作。我得到下面的错误。请求帮助解决错误

  • snowflake.connector.errors.MissingDependencyError:Missing optional dependency:pandas进程结束,退出代码为1*
import pandas as pd

from sqlalchemy import create_engine
from snowflake.sqlalchemy import URL
from snowflake.connector.pandas_tools import pd_writer
url = URL(
    account = '',
    user = '',
    schema = 'TMP',
    database = 'TMP',
    warehouse= 'DATABRICKS',
    role = '',
    authenticator='externalbrowser',
)

engine = create_engine(url)
con = engine.connect()
df = pd.read_excel("C:\\Final.xlsx")
df.columns = df.columns.astype(str)
table_name = 'test_connect'
if_exists = 'replace'

df.to_sql(name=table_name.lower(), con=con,index= False, if_exists=if_exists, method=pd_writer)

字符串

下面是详细的错误信息

Traceback (most recent call last):
      File "C:\Users\XYZ\AppData\Roaming\JetBrains\DataSpell2022.2\scratches\scratch.py", line 32, in <module>
        df.to_sql(name=table_name.lower(), con=con,index= False, if_exists=if_exists, method=pd_writer)
      File "C:\Users\XYZ\AppData\Roaming\Python\Python310\site-packages\pandas\core\generic.py", line 2963, in to_sql
        return sql.to_sql(
      File "C:\Users\XYZ\AppData\Roaming\Python\Python310\site-packages\pandas\io\sql.py", line 697, in to_sql
        return pandas_sql.to_sql(
      File "C:\Users\XYZ\AppData\Roaming\Python\Python310\site-packages\pandas\io\sql.py", line 1739, in to_sql
        total_inserted = sql_engine.insert_records(
      File "C:\Users\XYZ\AppData\Roaming\Python\Python310\site-packages\pandas\io\sql.py", line 1322, in insert_records
        return table.insert(chunksize=chunksize, method=method)
      File "C:\Users\XYZ\AppData\Roaming\Python\Python310\site-packages\pandas\io\sql.py", line 950, in insert
        num_inserted = exec_insert(conn, keys, chunk_iter)
      File "C:\Users\XYZ\AppData\Roaming\Python\Python310\site-packages\snowflake\connector\pandas_tools.py", line 320, in pd_writer
        df = pandas.DataFrame(data_iter, columns=keys)
      File "C:\Users\XYZ\AppData\Roaming\Python\Python310\site-packages\snowflake\connector\options.py", line 36, in __getattr__
        raise MissingDependencyError(self._dep_name)
snowflake.connector.errors.MissingDependencyError: Missing optional dependency: pandas
    Process finished with exit code 1

4jb9z9bj

4jb9z9bj1#

我相信以下依赖项安装步骤尚未完成:https://docs.snowflake.com/en/user-guide/python-connector-pandas.html#installation

nx7onnlm

nx7onnlm2#

这对我很有效。
安装所需的软件包。

import pandas as pd
import snowflake.connector as snow
from snowflake.connector.pandas_tools import write_pandas

字符串
创建连接对象

conn = snow.connect(
user="USERNAME",
password="PASSWORD",
account="ACCOUNT",
warehouse="WAREHOUSE",
database="YOUR_DATABASE_NAME",
schema="YOUR_SCHEMA_NAME")


从源数据(如CSV)创建框架

source_data_df = pd.read_csv('d:/temp/CCR_PLATE_LOGIC.csv')


写信给 snowflake 的table。

write_pandas(conn, source_data_df, "YOUR_TABLE_NAME", auto_create_table=True)


如果要验证数据是否插入,请使用游标执行选择查询。创建游标对象。

cur = conn.cursor()


执行一条语句关闭仓库。

sql = "select * from YOUR_TABLE_NAME"
cur.execute(sql)


关闭光标和连接。

cur.close()
conn.close()

相关问题