有没有办法在 bigquery 的 udf 函数中打印或记录变量值?
Is there a way to print or log variable values in a udf function in bigquery?
我有 sql 和 udf 函数可以很好地协同工作。
我想在我的 determineText() 函数中比较记录的日期,它是一个整数并且具有 yyyymmdd 格式和今天的日期。
是否有像 console.log() 或 document.write() 这样的方法可以在 bigquery 的 udf 函数中打印变量值?
我的 udf 函数:
function myUdfFunction(row, emit) {
text = determineText(row.localdate);
emit({point_id: row.point_id, text: text});
}
function determineText(dateInteger){
var resultText = "";
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd
}
if(mm<10) {
mm='0'+mm
}
today = yyyy + mm + dd;
today = parseInt(today);
//console.log("today : "+today+"\ndateInteger : "+dateInteger); // not working
if (today == dateInteger)
resultText = "Okay";
else
resultText = "Not Okay";
return resultText;
}
bigquery.defineFunction(
'myUdfFunction',// Name of the function exported to SQL
['point_id', 'min_weight', 'localdate', 'temp_min', 'temp_max', 'precipitation', 'lat', 'lng'],// Names of input columns
// Output schema
[{'name': 'point_id', 'type': 'integer'},
{'name': 'text', 'type': 'string'}],
myUdfFunction// Reference to JavaScript UDF
);
每个 https://cloud.google.com/bigquery/user-defined-functions#limitations
The DOM objects Window, Document and Node, and functions that require them, are unsupported.
不过,您需要的 - 可以通过
轻松完成
1. 在 BigQuery 之外测试您的 UDF 或者,
2. 如果出于某种原因您需要从 BigQuery 中测试 UDF,您可以使用 emit 函数将任何内容输出为输出字段
我有 sql 和 udf 函数可以很好地协同工作。
我想在我的 determineText() 函数中比较记录的日期,它是一个整数并且具有 yyyymmdd 格式和今天的日期。
是否有像 console.log() 或 document.write() 这样的方法可以在 bigquery 的 udf 函数中打印变量值?
我的 udf 函数:
function myUdfFunction(row, emit) {
text = determineText(row.localdate);
emit({point_id: row.point_id, text: text});
}
function determineText(dateInteger){
var resultText = "";
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd
}
if(mm<10) {
mm='0'+mm
}
today = yyyy + mm + dd;
today = parseInt(today);
//console.log("today : "+today+"\ndateInteger : "+dateInteger); // not working
if (today == dateInteger)
resultText = "Okay";
else
resultText = "Not Okay";
return resultText;
}
bigquery.defineFunction(
'myUdfFunction',// Name of the function exported to SQL
['point_id', 'min_weight', 'localdate', 'temp_min', 'temp_max', 'precipitation', 'lat', 'lng'],// Names of input columns
// Output schema
[{'name': 'point_id', 'type': 'integer'},
{'name': 'text', 'type': 'string'}],
myUdfFunction// Reference to JavaScript UDF
);
每个 https://cloud.google.com/bigquery/user-defined-functions#limitations
The DOM objects Window, Document and Node, and functions that require them, are unsupported.
不过,您需要的 - 可以通过
轻松完成
1. 在 BigQuery 之外测试您的 UDF 或者,
2. 如果出于某种原因您需要从 BigQuery 中测试 UDF,您可以使用 emit 函数将任何内容输出为输出字段