在 Dataflow JavaScript UDF 中跳过记录

Posted

技术标签:

【中文标题】在 Dataflow JavaScript UDF 中跳过记录【英文标题】:Skipping records in Dataflow JavaScript UDF 【发布时间】:2018-05-22 17:37:52 【问题描述】:

我正在使用 Dataflow 预定义的 GCS to BigQuery 模板将一些数据从 GCS 导入 BigQuery。 使用 javascript UDF 处理数据。

我想排除一些被插入 BigQuery 的记录。有没有办法用 JavaScript UDF 做到这一点?

【问题讨论】:

【参考方案1】:

对于您想跳过的记录,您可以从 UDF 发出 undefined 并且这些记录将不再包含在输出中。

您可以在此处查看此功能的示例: https://github.com/GoogleCloudPlatform/DataflowTemplates#filtering-records

/**
 * A transform function which only accepts 42 as the answer to life.
 * @param string inJson
 * @return string outJson
 */
function transform(inJson) 
  var obj = JSON.parse(inJson);
  // only output objects which have an answer to life of 42.
  if (obj.hasOwnProperty('answerToLife') && obj.answerToLife === 42) 
    return JSON.stringify(obj);
  

【讨论】:

以上是关于在 Dataflow JavaScript UDF 中跳过记录的主要内容,如果未能解决你的问题,请参考以下文章

使用 DataFlow Engine 运行 bigquery 查询时,如何使用 UDF(和其他函数)?

GCP 数据流 UDF 输入

是否可以在 UDF 中调用 javascript 过程 API?

JavaScript 中的雪花 UDF 未按预期计算

在 BigQuery 中使用 javascript udf 进行 tf idf 计算时,UDF 工作程序在执行期间超时

雪花中的 JavaScript UDF