【问题标题】:Is there a way to print or log variable values in a udf function in bigquery?有没有办法在 bigquery 的 udf 函数中打印或记录变量值?
【发布时间】:2016-04-11 16:02:16
【问题描述】:

我有 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
);

【问题讨论】:

    标签: javascript google-bigquery udf


    【解决方案1】:

    https://cloud.google.com/bigquery/user-defined-functions#limitations

    不支持 DOM 对象 Window、Document 和 Node 以及需要它们的函数。

    不过,您所需要的 - 可以通过
    轻松完成 1. 在 BigQuery 之外测试您的 UDF,或者,
    2. 如果由于某种原因您需要在 BigQuery 中测试 UDF,您可以使用 emit 函数将任何内容作为输出字段输出

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 1970-01-01
      • 2016-05-31
      • 2015-02-25
      • 2022-11-17
      • 1970-01-01
      • 2019-03-29
      • 2018-09-25
      • 2021-04-28
      相关资源
      最近更新 更多