[英]Parameter injection not working in BigQuery Vertex AI notebook for WEEK(WEEKDAY)
我正在使用 Vertex AI 筆記本,運行 BigQuery IPython 魔法並注入參數。
params = {"day_of_week": "WEDNESDAY"}
%%bigquery sales_df --project $project_id --params $params
SELECT created_date, num_sales
FROM sales
WHERE DATE_DIFF(created_date, "2023-01-01", WEEK(@day_of_week)) BETWEEN -12 and 11
我希望這會起作用,但它不會,因為WEEK
需要WEEKDAY
參數( BQ 文檔)。 將其硬編碼為WEEK(WEDNESDAY)
有效,但參數注入不起作用,因為它在字符串周圍添加引號,有效地將其編譯為WEEK("WEDNESDAY")
。
這里有什么解決方法嗎? 我找不到將字符串工作日 ( "WEDNESDAY"
) 轉換為星期幾枚舉 ( WEDNESDAY
) 的 BQ 方法。
您可以在 BigQuery 魔術中嘗試動態 SQL 。
params = {"day_of_week": "WEDNESDAY"}
%%bigquery sales_df --project $project_id --params $params
EXECUTE IMMEDIATE FORMAT("""
SELECT created_date, num_sales
FROM sales
WHERE DATE_DIFF(created_date, "2023-01-01", WEEK(%s)) BETWEEN -12 and 11
""", @day_of_week);
下面是我試過的一個工作示例。
%%bigquery --project your-project-id --params {"day_of_week": "WEDNESDAY"}
EXECUTE IMMEDIATE FORMAT("""
SELECT DATE_DIFF(CURRENT_DATE, "2023-01-01", WEEK(%s)) BETWEEN -12 and 11
""", @day_of_week)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.