Как вставить типы данных VARIANT или ARRAY в Snowflake с помощью панд и sqlalchemy - PullRequest
1 голос
/ 15 апреля 2019

У меня есть фрейм данных Pandas, который содержит несколько столбцов, которые являются списками.Я хотел бы вставить их в свою таблицу Snowflake как ARRAY типы данных.

Традиционно я работал с PostgreSQL и просто вставил как df_to_insert.to_sql(TABLE_NAME, sqlalchemy_connection, **other_parameters).

Однако яБьюсь вставлять в Снежинку.Когда у меня есть столбец, который является списком, диалект sqlAlchemy Snowflake считает, что это строка:

Тип выражения не соответствует типу данных столбца, ожидая ARRAY, но получил VARCHAR (2) для столбца NAME_OF_COLUMN_WITH_LISTS

Я пытался дать подсказке движку sqlAlchemy, что столбец не является строкой, добавив в явном виде dtypes:

df_to_insert.to_sql("MY_SNOWFLAKE_TABLE_NAME",
                     snowflake_connection,
                     if_exists="append",
                     index=False,
                     dtype={'NAME_OF_COLUMN_WITH_LISTS': sqlalchemy.types.JSON})

Это только дает мне:

sqlalchemy.exc.StatementError: (builtins.AttributeError) У объекта 'SnowflakeDialect' нет атрибута '_json_serializer'

Каков наилучший способ вставки данных в таблицы Snowflake типов вариантов / массивов ивсе еще используете панд / sqlalchemy?Или еще нет хорошего способа сделать это?

...