Как использовать выражение sqlalchemy в read_sql_table, используя Dask? - PullRequest
1 голос
/ 14 февраля 2020

Я использую df = dd.read_sql_table('mytable_name', 'connection_string',npartitions=10, index_col='id') для создания фрейма данных Dask, и он работает отлично. Но это занимает все строки таблицы. Я хочу ограничить количество строк или применить некоторые условия. Для этого, согласно официальной документации read_sql_table , мы можем использовать выражение sqlalchemy. Я пытаюсь написать выражение sqlalchemy, но ни один из способов не помог мне.

Я пытался так:

engine = create_engine(connection_string)

metadata = MetaData()

t = Table('mytable_name', metadata,
Column('id'),
schema='my_schema')
s = select([t]).limit(500)
dd.read_sql_table(s, connection_string, index_col='id')

, но это тоже не работает. Это выражение sqlalchemy, которое я нашел в Официальной документации sqlalchemy.

Помогите мне с передачей выражения sqlalchemy в read_sql_table с помощью Dask.

Заранее спасибо.

1 Ответ

2 голосов
/ 14 февраля 2020

Термин «выражение» здесь несколько перегружен. Вы используете представление ORM, но Dask требует низкоуровневого SQL синтаксиса выражения функции. В вашем случае, я думаю, это выглядело бы как

from sqlalchemy import sql
expr = sql.select([sql.column("id")]).select_from(
        sql.table("mytable_name")
    ).limit(500)

Я не знаю, как получить схему там.

...