使用大熊猫从BigQuery发出JSON响应



我是一个Ruby Dev,做很多数据工作,决定切换到Python。到目前

我目前的任务是写一个轻巧的静息API,该API在引擎盖下对Google BigQuery进行了查询。

我有一个非常简单的测试在烧瓶中运行,这很好,但是我确实很难将BigQuery响应作为JSON。为了解决这个问题,我使用了大熊猫,然后将数据框架转换为JSON。虽然工作起来,但这感觉就像是不必要的一步,我什至不确定这是熊猫的合法用例。我还读到,随着数据量的增加,创建数据框可能会很慢。

下面是我在烧瓶中的小模拟测试。听到经验丰富的python devs的消息真的很有帮助,如果我应该在这里查看其他图书馆。

from flask import Flask
from google.cloud import bigquery
import pandas
app = Flask(__name__)
@app.route("/bq_test")
def bq_test():
    client = bigquery.Client.from_service_account_json('/my_creds.json')
    sql = """select * from `my_dataset.my_table` limit 1000"""
    query_job = client.query(sql).to_dataframe()
    return query_job.to_json(orient = "records")
if __name__ == "__main__":
    app.run()

来自BigQuery文档 -

BigQuery支持功能,可帮助您检索存储在中的数据 JSON形式的字符串和功能可以帮助您将数据转换为 JSON-Formatted Strings:

JSON_EXTRACT或JSON_EXTRACT_SCALAR

JSON_EXTRACT(json_string_expr, json_path_string_literal),将json值返回字符串。

JSON_EXTRACT_SCALAR(json_string_expr, json_path_string_literal),返回标量json值为字符串。

描述

json_string_expr参数必须是JSON形式的字符串。...

json_path_string_literal参数标识您要从JSON-Formatted String获得的值或值。您可以使用JSONPATH格式构建此参数。

https://cloud.google.com/bigquery/docs/reference/standard-sql/json_functions

最新更新