【发布时间】:2015-10-30 10:36:24
【问题描述】:
Google BigQuery 现在支持像 mapreduce 中的映射器一样工作的 UDF。
BigQuery 支持用 JavaScript 编写的用户定义函数 (UDF)。 UDF 类似于 MapReduce 中的“Map”函数:它将单行作为输入并产生零或多行作为输出。输出可能具有与输入不同的架构。
来自https://cloud.google.com/bigquery/user-defined-functions
在行上实现 UDF 而不是允许在列/字段上作为纯函数工作的 UDF 背后的动机是什么,例如 UDF 在 hive https://cwiki.apache.org/confluence/display/Hive/HivePlugins 中的工作方式。
我想您可以将任何适用于列的 UDF(如 hive UDF)表示为适用于行的 UDF(BigQuery UDF),但反之则不行。这可以通过定义一个 UDF(在 BigQuery 中)来实现,该 UDF 具有与数据集相同的输入和输出架构以及刚刚传递的所有值,但您希望将函数应用到的字段。
如果您想将相同的函数应用于具有不同架构的不同数据集,这当然很麻烦。请帮我理解。
【问题讨论】:
标签: google-bigquery