如何在U-SQL中实现递归?

时间:2017-10-16 12:20:41

标签: azure u-sql

我创建了一个参数化的U-SQL过程,我希望通过员工ID递归调用它。有没有办法在U-SQL中实现递归?谢谢!

2 个答案:

答案 0 :(得分:2)

U-SQL确实支持递归,您可以查看Recursive TVF示例here。但是,递归方法通常不能很好地扩展,因此您可能需要考虑不同的方法。

Paul Andrew使用Powershell here描述了另一种递归方法。

如果您能提供一些样本数据和预期结果,我相信有人可以帮助您。我猜你不需要递归方法,你只需要一个基于集合的方法。

答案 1 :(得分:0)

要添加鲍勃的答案(不确定我是否应该编辑他的答案或提供我自己的答案,所以我在这里):

  1. 递归TVF的嵌套级别限制为50。
  2. 您不能/不应该递归调用过程,因为它们会产生副作用(比如写入表格或文件)。相反,编写一个递归TVF,生成您希望在过程中编写的行集。
  3. 但正如Bob提到的那样,请查看您是否可以找到基于集合的解决方案或使用不涉及递归的现有功能。