Проблема при обработке / выборе десятичных данных типа данных с использованием pandasql из pandas dataframe - PullRequest
0 голосов
/ 25 октября 2019

У меня есть паркетный файл с 4 колонками. Это выглядит примерно так:

    +----+-----------+-------+--------+
    |TYPE|         ID|   SRNO|     AMT|
    +--- +-----------+-------+--------+
    |D   |     123456|      1|  100.00|
    |D   |     123457|      2|  200.00|
    |D   |     123459|      3|  500.00|
    |D   |     123458|      4| 1000.00|
    +----+-----------+-------+--------+

Схема для этого файла:

    dataframe.printSchema

    root
     |-- TYPE: string (nullable = true)
     |-- ID: integer (nullable = true)
     |-- SRNO: integer (nullable = true)
     |-- AMT: decimal(15,2) (nullable = true)

Когда я читаю этот файл в пандах, схема меняется на десятичную и представляется как объект

    pandas_dataframe.dtypes
    TYPE    object
    ID      int32
    SRNO    int32
    AMT     object

Когда я пытаюсь получить данные из фрейма данных pandas, я получаю следующую ошибку:

    ps.sqldf("select * from pandas_dataframe")

Traceback (последний вызов был последним): Файл "/ usr / local / lib64 /python3.6 / site-packages / sqlalchemy / engine / base.py ", строка 1229, в _execute_context курсор, оператор, параметры, контекстный файл" /usr/local/lib64/python3.6/site-packages/sqlalchemy/engine/default.py ", строка 577, в do_executemany cursor.executemany (оператор, параметры) sqlite3.InterfaceError: Ошибка привязки параметра 3 - возможно, неподдерживаемый тип.

Может кто-нибудь, пожалуйста, дайте мне знать, как обрабатывать такиесценарий, в котором мне нужно выбрать десятичное поле в кадре данных панд.

...