teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

BigQueryのBI上で、UDFを作成できたクエリに変更し、その際に出るエラーに変更しました。

2021/02/28 05:59

投稿

afuro_head
afuro_head

スコア4

title CHANGED
File without changes
body CHANGED
@@ -5,21 +5,25 @@
5
5
 
6
6
  テスト的に実施している処理は、
7
7
  user_idをUDFに渡して(user_id+user_id)した結果を返すというUDFを作成しようとしております。
8
+
9
+
10
+ ##BI上で、自作関数作成できたものをqueryに設定しております。
11
+
8
12
  ### 発生している問題・エラーメッセージ
9
13
 
10
14
  ```
11
- BadRequest: 400 Syntax error: Expected "(" or "." but got "-" at [2:30]
15
+ BadRequest: 400 Cannot set destination table in jobs with DDL statements
12
16
 
13
- (job ID: XXXXXXXXXXXX)
17
+ (job ID: XXXXXX)
14
18
 
15
- -----Query Job SQL Follows-----
19
+ -----Query Job SQL Follows-----
16
20
 
17
- | . | . | . | . | . | . | . |
21
+ | . | . | . | . | . |
18
- 1:
19
- 2:CREATE OR REPLACE FUNCTION [project_id].sample.function_test(user_id INTEGER)
22
+ 1:CREATE OR REPLACE FUNCTION sample.TEST_FUNC(user_id INT64)
20
- 3:RETURNS INTEGER AS
23
+ 2:RETURNS INT64 AS
21
- 4:(user_id + user_id)
24
+ 3:(user_id + user_id);
25
+ 4:
22
- | . | . | . | . | . | . | . |
26
+ | . | . | . | . | . |
23
27
  ```
24
28
 
25
29
  ### 該当のソースコード
@@ -27,12 +31,10 @@
27
31
  ```ここに言語名を入力
28
32
  function_id = 'function_test'
29
33
 
30
- query = f"""
31
- CREATE OR REPLACE FUNCTION {project_id}.{dataset_id}.{function_id}(user_id INTEGER)
34
+ query = """CREATE OR REPLACE FUNCTION sample.TEST_FUNC(user_id INT64)
32
- RETURNS INTEGER
35
+ RETURNS INT64 AS
33
- LANGUAGE SQL AS
34
36
  (user_id + user_id);
35
- """
37
+ """
36
38
  job_config = bigquery.QueryJobConfig(destination=f"{project_id}.{dataset_id}.{function_id}")
37
39
  query_job = client.query(query,
38
40
  job_config = job_config)