SQLAlchemy ORM преобразование в Pandas DataFrame с Bigquery - PullRequest
0 голосов
/ 16 апреля 2020

Расширение этого вопроса , которое описывает процесс использования функции pandas.read_sql из ORM для получения результатов запроса непосредственно в pandas DataFrame.

То, что я хотел бы, было бы иметь возможность делать то же самое, используя SQLAlchemy и pybigquery

Прежде всего, я определяю свою сессию следующим образом:

from sqlalchemy import
from sqlalchemy.orm import scoped_session, sessionmaker

db_uri = "bigquery://myproject/"
engine = create_engine(db_uri)
session = scoped_session(sessionmaker(bind=engine))

Оттуда я могу запросить у моего ORM Item

session.query(Item).first()
<Item...>

Если бы мне пришлось вызывать классическую SQL базу данных через pandas.read_sql, я бы просто сказал:

query = session.query(...)
df = pandas.read_sql(query.statement, session.query.bind)

Наивно, я пытался

pandas.read_bgq(query.statement)

Но это возвращает TypeError: Object of type 'Select' is not JSON serializable

Есть ли способ запросить большой запрос непосредственно в pandas фрейме данных так же, как для классического SQL база данных?

1 Ответ

1 голос
/ 20 апреля 2020

Из комментария @ TimSwast:

Использование регулярного запроса с pandas.read_sql действительно работает! Так это будет выглядеть так:

query = session.query(...)
df = pandas.read_sql(query.statement, session.query.bind)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...