小编Mit*_*aJ9的帖子

如何使用转换高阶函数?

这是关于transform高阶函数(https://issues.apache.org/jira/browse/SPARK-23908).

有没有办法将它用作标准功能(在包中org.apache.spark.sql.functions._)?

我有一个字符串数组,我想对每个字符串应用URI规范化.现在我用UDF做了.我刚刚用spark 2.4.0跳过它,我可以跳过UDF.

当我看到它应该使用selectExpr类似df.selectExpr("transform(i, x -> x + 1)"),但它只是为了与使用selectExpr

无论如何使用它来提供转换的自定义功能?有没有办法实现它,还是应该使用好的旧UDF?

apache-spark apache-spark-sql

6
推荐指数
1
解决办法
539
查看次数

Scheme(Racket)正确编写的函数不适用于某些输入

所以我在球拍中编写了I函数来计算Sums:

(define (sum term a next b)
  (if (> a b)
      0
      (+ (term a) (sum term (next a) next b))))
Run Code Online (Sandbox Code Playgroud)

术语是应用于每个参数的函数.A接下来是我们如何前进到下一个元素(即a2 = 2*a1或a2 = a1 + 1等),b是最后一个元素.

还有2个附加功能:

(define (square x) (* x x))
(define (inc x) (+ x 1))
Run Code Online (Sandbox Code Playgroud)

如果我输入:

(sum square 1 inc 5)我得到的是正确的55

但如果我输入:

(总平方1平方5)

我陷入了困境!?为什么a2应该是a1*a1和a3 = a2*a2并且a应该超过b,因此结束递归的条件将是fultifield.很奇怪.

lisp scheme functional-programming infinite-loop racket

1
推荐指数
1
解决办法
155
查看次数