BigQueryテーブルに対して、UDFを呼び出すSQL文を実行しようとしています。このステートメントはPythonスクリプト内で実行され、呼び出しはBigQuery APIを介して行われます。UDFを呼び出すPythonスクリプトを使用してBigQuery APIを使用する方法
UDFなしで単純なSQL文を実行すると、正常に動作します。しかし、UDFスクリプト(ローカルまたはGCSバケットに格納)を使用しようとすると、同じエラーが発生します。 私は私の地元のターミナル(私はPythonのランチャー経由でスクリプトを実行する)に乗る何この:
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">
そして、これが私のPythonスクリプトです:
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 'を使って動作し、' OPTIONS'節を介して2つの別々のUDFファイルで自分の関数を呼び出すことができました。 JS関数のIF文で大文字と小文字を区別して(もし 'legacy SQL'でUDFを使うのとは逆に)' if 'を大文字小文字にしなければならないことに注意してください。この解決策は機能します。しかし、「レガシーSQL」でそれをどのように使用できるかを理解したいと思っています。 – kekchoze