Google BigQuery现在支持UDF,就像mapreduce中的mappers一样。
BigQuery支持用JavaScript编写的用户定义函数(UDF)。 UDF类似于MapReduce中的“Map”函数:它将一行作为输入,并产生零行或多行作为输出。输出可能具有与输入不同的模式。
来自https://cloud.google.com/bigquery/user-defined-functions
在行上实现UDF的动机是什么,允许在列/字段上作为纯函数工作的UDF,例如UDF如何在配置单元https://cwiki.apache.org/confluence/display/Hive/HivePlugins中工作。
我猜你可以表达任何在列上工作的UDF(比如hive UDF)作为一个在行上运行的UDF(BigQuery UDF),但反之亦然。这可以通过使用与数据集相同的输入和输出模式定义UDF(在BigQuery中)以及刚刚传递的所有值,但是要将函数应用到的字段。
如果要将相同的函数应用于具有不同模式的不同数据集,这当然很麻烦。请帮我理解。
答案 0 :(得分:4)
BigQuery中当前的UDF实现只是第一步。正如您所注意到的 - 如果您希望能够处理嵌套和重复的结构,那么它是最通用的方式,但是当您只需要简单的标量值时,它会使它变得很麻烦。期待未来在这个简单的UDF简单易用的领域的改进。