我在使用標準SQL和JavaScript UDF的bigquery中編寫查詢。我能夠使用WebUI和bigquery命令行工具來實現這一點,但我的要求是使用谷歌python客戶端進行此查詢。無法實現這一點。請有人幫忙。在谷歌BigQuery中,如何使用谷歌Python客戶端的JavaScript UDF
from google.cloud import bigquery
bigquery_client = bigquery.Client()
client = bigquery.Client()
query_results = client.run_sync_query("""
CREATE TEMPORARY FUNCTION CategoriesToNumerical(a array<STRING>,b array<STRING>)
RETURNS string
LANGUAGE js AS """
var values = {};
var counter = 0;
for(i=0;i<a.length;i++)
{ var temp;
temp = a[i];
a[i] = counter;
values[temp] = counter;
counter ++;
}
for(i=0;i<b.length;i++)
{
for(var key in values)
{
if(b[i] == key)
{
b[i] = values[key];
}
}
}
return b;
""";
SELECT
CategoriesToNumerical(ARRAY(SELECT DISTINCT ProspectStage from lsq.lsq_dest),ARRAY(SELECT ProspectStage from lsq.lsq_dest)) as prospectstageds
;""")
query_results.use_legacy_sql = False
query_results.run()
page_token = None
while True:
rows1, total_rows, page_token = query_results.fetch_data(
max_results=100,
page_token=page_token)
for row1 in rows1:
print "row",row1
if not page_token:
break
這不適用於我。請問有人可以幫我解決這個問題。
你應該表現出你嘗試過這麼遠嗎?請編輯您的問題,以顯示(http://stackoverflow.com/help/mcve)的一個[最小,完整,可驗證的示例]你遇到問題的代碼ñ我們可以嘗試幫助解決具體問題。你也可以閱讀[如何問](http://stackoverflow.com/help/how-to-ask) –
我想知道你正在使用哪個Python庫,以及你得到什麼錯誤 - 你可以發佈非工作代碼? –
我是否需要將代碼中的JavaScript UDF部分放入Google雲存儲中的文件中,然後在我的代碼中使用它。但我甚至不知道如何從sql查詢函數內部訪問該文件 –