BigQuery 테이블에 대해 UDF를 호출하는 SQL 문을 실행하려고합니다. 이 문은 Python 스크립트 내에서 실행되며 호출은 BigQuery API를 통해 이루어집니다.UDF를 호출하는 Python 스크립트를 사용하여 BigQuery API를 사용하는 방법
UDF없이 간단한 SQL 문을 실행할 때 제대로 작동합니다. 그러나 UDF 스크립트 (로컬 또는 GCS 버킷에 저장 됨)를 사용하려고해도 동일한 오류가 계속 발생합니다. 이 내가 (나는 파이썬 실행기를 통해 스크립트를 실행) 내 로컬 터미널에 도착 :
Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/googleapiclient/http.py", line 840, in execute raise HttpError(resp, content, uri=self.uri) googleapiclient.errors.HttpError: https://www.googleapis.com/bigquery/v2/projects/[projectId]/queries?alt=json returned "Required parameter is missing">
을 그리고 이것은 내 파이썬 스크립트입니다
credentials = SignedJwtAssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
key,
scope='https://www.googleapis.com/auth/bigquery')
aservice = build('bigquery','v2',credentials=credentials)
query_requestb = aservice.jobs()
query_data = {
'configuration': {
'query': {
'userDefinedFunctionResources': [
{
'resourceUri': 'gs://[bucketName]/[fileName].js'
}
],
'query': sql
}
},
'timeoutMs': 100000
}
query_response = query_requestb.query(projectId=PROJECT_NUMBER,body=query_data).execute(num_retries=0)
어떤 생각 무엇을 '매개 변수가 누락'또는 방법 나는 이걸 달릴 수 있니?
빠른 응답 Elliott에 감사드립니다. '표준 SQL '을 사용하고 두 개의 분리 된 UDF 파일로 함수를 호출하는 것은'OPTIONS' 절을 통해 가능합니다. JS 함수의 IF 문에서 'if'를 소문자 *로 사용해야한다는 점에 유의하십시오 ('레거시 SQL'이있는 UDF를 사용하는 경우와 반대). 이 솔루션은 작동합니다. 그러나 우리가 '레거시 SQL'과 함께 사용할 수있는 방법을 이해하고 싶어합니다. – kekchoze