在Jupyter Notebook中,我正在尝试使用BigQuery服务器上的类似sql的查询从BigQuery导入数据。然后,我将数据存储在一个数据框中:
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="credentials.json"
from google.cloud import bigquery
sql = """
SELECT * FROM dataset.table
"""
client = bigquery.Client()
df_bq = client.query(sql).to_dataframe()
Run Code Online (Sandbox Code Playgroud)
数据的形状为(6000000,8),一旦存储在数据帧中,将使用约350MB的内存。
sql如果直接在BQ中执行查询,则大约需要2秒钟。
但是,通常需要大约30-40分钟的时间来执行上述代码,并且代码执行失败的可能性通常更高,并引发以下错误:
ConnectionError: ('Connection aborted.', OSError("(10060, 'WSAETIMEDOUT')",))
Run Code Online (Sandbox Code Playgroud)
总而言之,可能有三个错误原因:
希望对问题有任何见解,在此先感谢!
以下查询突然停止工作:
SELECT
CAST((SELECT up.value.string_value FROM UNNEST(user_properties) up WHERE key = "user_id") AS INT64) AS user_id,
(TIMESTAMP_MILLIS(CAST(event_timestamp/1000 AS INT64))) AS event_date
`firebase.dataset.events_*`
Run Code Online (Sandbox Code Playgroud)
错误如下:
bad int64 value:
Run Code Online (Sandbox Code Playgroud)
该查询几个月以来一直运行良好,今天发生了一些事情导致此错误。有没有人有同样的问题?问题可能出在我们的数据中吗?这可能是 GCP 方面的临时问题吗?谢谢!