簡體   English   中英

參數注入在一周(工作日)的 BigQuery Vertex AI 筆記本中不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM