0
我在BigQuery中創建了一個UDF,並像在FROM子句中使用UDF的文檔(https://cloud.google.com/bigquery/user-defined-functions#creating-the-query)中的示例那樣運行它。在UDF查詢中將UDF用作BigQuery
但是,我需要的是在select中將UDF用作列。
舉一個例子 - 這是我的函數返回每個座標在全球的四分之一是:
function getQuarter(row, emit) {
emit({quarter: getQuarterHelper(row.lon,row.lat)});
}
function getQuarterHelper(lon,lat) {
try {
var NS = lat > 0 ? 'N' : 'S';
var EW = lon > 0 ? 'E' : 'W';
return(NS + EW);
} catch (ex) {
return 'N/A';
}
}
bigquery.defineFunction(
'getQuarter',
['lon', 'lat'], //input columns
[{name: 'quarter', type: 'string'}], //output
getQuarter
);
這工作:
SELECT quarter
FROM
getQuarter(
SELECT lon,lat
FROM [table_name]
)
但是這一點,例如,是不是:
SELECT location_title, getQuarter(lon, lat)
FROM [table_name]
而且,無論是這樣的:
SELECT *
FROM [table_name]
WHERE getQuarter(lon,lat) = 'NE'