Github user rxin commented on a diff in the pull request:
https://github.com/apache/spark/pull/5923#discussion_r29719255
--- Diff: sql/core/src/main/scala/org/apache/spark/sql/functions.scala ---
@@ -437,6 +439,489 @@ object functions {
def upper(e: Column): Column = Upper(e.expr)
//////////////////////////////////////////////////////////////////////////////////////////////
+ // Math Functions
+
//////////////////////////////////////////////////////////////////////////////////////////////
+
+ /**
+ * Computes the cosine inverse of the given value; the returned angle is
in the range
+ * 0.0 through pi.
+ *
+ * @group math_funcs
+ */
+ def acos(e: Column): Column = Acos(e.expr)
+
+ /**
+ * Computes the cosine inverse of the given column; the returned angle
is in the range
+ * 0.0 through pi.
+ *
+ * @group math_funcs
+ */
+ def acos(columnName: String): Column = acos(Column(columnName))
+
+ /**
+ * Computes the sine inverse of the given value; the returned angle is
in the range
+ * -pi/2 through pi/2.
+ *
+ * @group math_funcs
+ */
+ def asin(e: Column): Column = Asin(e.expr)
+
+ /**
+ * Computes the sine inverse of the given column; the returned angle is
in the range
+ * -pi/2 through pi/2.
+ *
+ * @group math_funcs
+ */
+ def asin(columnName: String): Column = asin(Column(columnName))
+
+ /**
+ * Computes the tangent inverse of the given value.
+ *
+ * @group math_funcs
+ */
+ def atan(e: Column): Column = Atan(e.expr)
+
+ /**
+ * Computes the tangent inverse of the given column.
+ *
+ * @group math_funcs
+ */
+ def atan(columnName: String): Column = atan(Column(columnName))
+
+ /**
+ * Returns the angle theta from the conversion of rectangular
coordinates (x, y) to
+ * polar coordinates (r, theta).
+ *
+ * @group math_funcs
+ */
+ def atan2(l: Column, r: Column): Column = Atan2(l.expr, r.expr)
+
+ /**
+ * Returns the angle theta from the conversion of rectangular
coordinates (x, y) to
+ * polar coordinates (r, theta).
+ *
+ * @group math_funcs
+ */
+ def atan2(l: Column, rightName: String): Column = atan2(l,
Column(rightName))
+
+ /**
+ * Returns the angle theta from the conversion of rectangular
coordinates (x, y) to
+ * polar coordinates (r, theta).
+ *
+ * @group math_funcs
+ */
+ def atan2(leftName: String, r: Column): Column = atan2(Column(leftName),
r)
+
+ /**
+ * Returns the angle theta from the conversion of rectangular
coordinates (x, y) to
+ * polar coordinates (r, theta).
+ *
+ * @group math_funcs
+ */
+ def atan2(leftName: String, rightName: String): Column =
+ atan2(Column(leftName), Column(rightName))
+
+ /**
+ * Returns the angle theta from the conversion of rectangular
coordinates (x, y) to
+ * polar coordinates (r, theta).
+ *
+ * @group math_funcs
+ */
+ def atan2(l: Column, r: Double): Column = atan2(l, lit(r).expr)
+
+ /**
+ * Returns the angle theta from the conversion of rectangular
coordinates (x, y) to
+ * polar coordinates (r, theta).
+ *
+ * @group math_funcs
+ */
+ def atan2(leftName: String, r: Double): Column = atan2(Column(leftName),
r)
+
+ /**
+ * Returns the angle theta from the conversion of rectangular
coordinates (x, y) to
+ * polar coordinates (r, theta).
+ *
+ * @group math_funcs
+ */
+ def atan2(l: Double, r: Column): Column = atan2(lit(l).expr, r)
+
+ /**
+ * Returns the angle theta from the conversion of rectangular
coordinates (x, y) to
+ * polar coordinates (r, theta).
+ *
+ * @group math_funcs
+ */
+ def atan2(l: Double, rightName: String): Column = atan2(l,
Column(rightName))
+
+ /**
+ * Computes the cube-root of the given value.
+ *
+ * @group math_funcs
+ */
+ def cbrt(e: Column): Column = Cbrt(e.expr)
+
+ /**
+ * Computes the cube-root of the given column.
+ *
+ * @group math_funcs
+ */
+ def cbrt(columnName: String): Column = cbrt(Column(columnName))
+
+ /**
+ * Computes the ceiling of the given value.
+ *
+ * @group math_funcs
+ */
+ def ceil(e: Column): Column = Ceil(e.expr)
+
+ /**
+ * Computes the ceiling of the given column.
+ *
+ * @group math_funcs
+ */
+ def ceil(columnName: String): Column = ceil(Column(columnName))
+
+ /**
+ * Computes the cosine of the given value.
+ *
+ * @group math_funcs
+ */
+ def cos(e: Column): Column = Cos(e.expr)
+
+ /**
+ * Computes the cosine of the given column.
+ *
+ * @group math_funcs
+ */
+ def cos(columnName: String): Column = cos(Column(columnName))
+
+ /**
+ * Computes the hyperbolic cosine of the given value.
+ *
+ * @group math_funcs
+ */
+ def cosh(e: Column): Column = Cosh(e.expr)
+
+ /**
+ * Computes the hyperbolic cosine of the given column.
+ *
+ * @group math_funcs
+ */
+ def cosh(columnName: String): Column = cosh(Column(columnName))
+
+ /**
+ * Computes the exponential of the given value.
+ *
+ * @group math_funcs
+ */
+ def exp(e: Column): Column = Exp(e.expr)
+
+ /**
+ * Computes the exponential of the given column.
+ *
+ * @group math_funcs
+ */
+ def exp(columnName: String): Column = exp(Column(columnName))
+
+ /**
+ * Computes the exponential of the given value minus one.
+ *
+ * @group math_funcs
+ */
+ def expm1(e: Column): Column = Expm1(e.expr)
+
+ /**
+ * Computes the exponential of the given column.
+ *
+ * @group math_funcs
+ */
+ def expm1(columnName: String): Column = expm1(Column(columnName))
+
+ /**
+ * Computes the floor of the given value.
+ *
+ * @group math_funcs
+ */
+ def floor(e: Column): Column = Floor(e.expr)
+
+ /**
+ * Computes the floor of the given column.
+ *
+ * @group math_funcs
+ */
+ def floor(columnName: String): Column = floor(Column(columnName))
+
+ /**
+ * Computes `sqrt(a^2^ + b^2^)` without intermediate overflow or
underflow.
+ *
+ * @group math_funcs
+ */
+ def hypot(l: Column, r: Column): Column = Hypot(l.expr, r.expr)
+
+ /**
+ * Computes `sqrt(a^2^ + b^2^)` without intermediate overflow or
underflow.
+ *
+ * @group math_funcs
+ */
+ def hypot(l: Column, rightName: String): Column = hypot(l,
Column(rightName))
+
+ /**
+ * Computes `sqrt(a^2^ + b^2^)` without intermediate overflow or
underflow.
+ *
+ * @group math_funcs
+ */
+ def hypot(leftName: String, r: Column): Column = hypot(Column(leftName),
r)
+
+ /**
+ * Computes `sqrt(a^2^ + b^2^)` without intermediate overflow or
underflow.
+ *
+ * @group math_funcs
+ */
+ def hypot(leftName: String, rightName: String): Column =
+ hypot(Column(leftName), Column(rightName))
+
+ /**
+ * Computes `sqrt(a^2^ + b^2^)` without intermediate overflow or
underflow.
+ *
+ * @group math_funcs
+ */
+ def hypot(l: Column, r: Double): Column = hypot(l, lit(r).expr)
+
+ /**
+ * Computes `sqrt(a^2^ + b^2^)` without intermediate overflow or
underflow.
+ *
+ * @group math_funcs
+ */
+ def hypot(leftName: String, r: Double): Column = hypot(Column(leftName),
r)
+
+ /**
+ * Computes `sqrt(a^2^ + b^2^)` without intermediate overflow or
underflow.
+ *
+ * @group math_funcs
+ */
+ def hypot(l: Double, r: Column): Column = hypot(lit(l).expr, r)
+
+ /**
+ * Computes `sqrt(a^2^ + b^2^)` without intermediate overflow or
underflow.
+ *
+ * @group math_funcs
+ */
+ def hypot(l: Double, rightName: String): Column = hypot(l,
Column(rightName))
+
+ /**
+ * Computes the natural logarithm of the given value.
+ *
+ * @group math_funcs
+ */
+ def log(e: Column): Column = Log(e.expr)
+
+ /**
+ * Computes the natural logarithm of the given column.
+ *
+ * @group math_funcs
+ */
+ def log(columnName: String): Column = log(Column(columnName))
+
+ /**
+ * Computes the logarithm of the given value in Base 10.
+ *
+ * @group math_funcs
+ */
+ def log10(e: Column): Column = Log10(e.expr)
+
+ /**
+ * Computes the logarithm of the given value in Base 10.
+ *
+ * @group math_funcs
+ */
+ def log10(columnName: String): Column = log10(Column(columnName))
+
+ /**
+ * Computes the natural logarithm of the given value plus one.
+ *
+ * @group math_funcs
+ */
+ def log1p(e: Column): Column = Log1p(e.expr)
+
+ /**
+ * Computes the natural logarithm of the given column plus one.
+ *
+ * @group math_funcs
+ */
+ def log1p(columnName: String): Column = log1p(Column(columnName))
+
+ /**
+ * Returns the value of the first argument raised to the power of the
second argument.
+ *
+ * @group math_funcs
+ */
+ def pow(l: Column, r: Column): Column = Pow(l.expr, r.expr)
+
+ /**
+ * Returns the value of the first argument raised to the power of the
second argument.
+ *
+ * @group math_funcs
+ */
+ def pow(l: Column, rightName: String): Column = pow(l, Column(rightName))
+
+ /**
+ * Returns the value of the first argument raised to the power of the
second argument.
+ *
+ * @group math_funcs
+ */
+ def pow(leftName: String, r: Column): Column = pow(Column(leftName), r)
+
+ /**
+ * Returns the value of the first argument raised to the power of the
second argument.
+ *
+ * @group math_funcs
+ */
+ def pow(leftName: String, rightName: String): Column =
pow(Column(leftName), Column(rightName))
+
+ /**
+ * Returns the value of the first argument raised to the power of the
second argument.
+ *
+ * @group math_funcs
+ */
+ def pow(l: Column, r: Double): Column = pow(l, lit(r).expr)
+
+ /**
+ * Returns the value of the first argument raised to the power of the
second argument.
+ *
+ * @group math_funcs
+ */
+ def pow(leftName: String, r: Double): Column = pow(Column(leftName), r)
+
+ /**
+ * Returns the value of the first argument raised to the power of the
second argument.
+ *
+ * @group math_funcs
+ */
+ def pow(l: Double, r: Column): Column = pow(lit(l).expr, r)
+
+ /**
+ * Returns the value of the first argument raised to the power of the
second argument.
+ *
+ * @group math_funcs
+ */
+ def pow(l: Double, rightName: String): Column = pow(l, Column(rightName))
+
+ /**
+ * Returns the double value that is closest in value to the argument and
+ * is equal to a mathematical integer.
+ *
+ * @group math_funcs
+ */
+ def rint(e: Column): Column = Rint(e.expr)
+
+ /**
+ * Returns the double value that is closest in value to the argument and
+ * is equal to a mathematical integer.
+ *
+ * @group math_funcs
+ */
+ def rint(columnName: String): Column = rint(Column(columnName))
+
+ /**
+ * Computes the signum of the given value.
+ *
+ * @group math_funcs
+ */
+ def signum(e: Column): Column = Signum(e.expr)
+
+ /**
+ * Computes the signum of the given column.
+ *
+ * @group math_funcs
+ */
+ def signum(columnName: String): Column = signum(Column(columnName))
+
+ /**
+ * Computes the sine of the given value.
+ *
+ * @group math_funcs
+ */
+ def sin(e: Column): Column = Sin(e.expr)
+
+ /**
+ * Computes the sine of the given column.
+ *
+ * @group math_funcs
+ */
+ def sin(columnName: String): Column = sin(Column(columnName))
+
+ /**
+ * Computes the hyperbolic sine of the given value.
+ *
+ * @group math_funcs
+ */
+ def sinh(e: Column): Column = Sinh(e.expr)
+
+ /**
+ * Computes the hyperbolic sine of the given column.
+ *
+ * @group math_funcs
+ */
+ def sinh(columnName: String): Column = sinh(Column(columnName))
+
+ /**
+ * Computes the tangent of the given value.
+ *
+ * @group math_funcs
+ */
+ def tan(e: Column): Column = Tan(e.expr)
+
+ /**
+ * Computes the tangent of the given column.
+ *
+ * @group math_funcs
+ */
+ def tan(columnName: String): Column = tan(Column(columnName))
+
+ /**
+ * Computes the hyperbolic tangent of the given value.
+ *
+ * @group math_funcs
+ */
+ def tanh(e: Column): Column = Tanh(e.expr)
+
+ /**
+ * Computes the hyperbolic tangent of the given column.
+ *
+ * @group math_funcs
+ */
+ def tanh(columnName: String): Column = tanh(Column(columnName))
+
+ /**
+ * Converts an angle measured in radians to an approximately equivalent
angle measured in degrees.
+ *
+ * @group math_funcs
+ */
+ def toDeg(e: Column): Column = ToDegrees(e.expr)
+
+ /**
+ * Converts an angle measured in radians to an approximately equivalent
angle measured in degrees.
+ *
+ * @group math_funcs
+ */
+ def toDeg(columnName: String): Column = toDeg(Column(columnName))
+
+ /**
+ * Converts an angle measured in degrees to an approximately equivalent
angle measured in radians.
+ *
+ * @group math_funcs
+ */
+ def toRad(e: Column): Column = ToRadians(e.expr)
--- End diff --
toRadians
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]