Skip to content

Commit

Permalink
[SPARK-8218][SQL] Binary log math function update.
Browse files Browse the repository at this point in the history
Some minor updates based on after merging #6725.
  • Loading branch information
rxin committed Jun 18, 2015
1 parent fee3438 commit a7c1522
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
11 changes: 8 additions & 3 deletions python/pyspark/sql/functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -404,16 +404,21 @@ def when(condition, value):
return Column(jc)


@since(1.4)
def log(col, base=math.e):
@since(1.5)
def log(arg1, arg2=None):
"""Returns the first argument-based logarithm of the second argument.
>>> df.select(log(df.age, 10.0).alias('ten')).map(lambda l: str(l.ten)[:7]).collect()
If there is only one argument, then this takes the natural logarithm of the argument.
>>> df.select(log(10.0, df.age).alias('ten')).map(lambda l: str(l.ten)[:7]).collect()
['0.30102', '0.69897']
>>> df.select(log(df.age).alias('e')).map(lambda l: str(l.e)[:7]).collect()
['0.69314', '1.60943']
"""
if arg2 is None:
arg2 = arg1
arg1 = math.e
sc = SparkContext._active_spark_context
jc = sc._jvm.functions.log(base, _to_java_column(col))
return Column(jc)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,10 @@ case class Pow(left: Expression, right: Expression)

case class Logarithm(left: Expression, right: Expression)
extends BinaryMathExpression((c1, c2) => math.log(c2) / math.log(c1), "LOG") {

/**
* Natural log, i.e. using e as the base.
*/
def this(child: Expression) = {
this(EulerNumber(), child)
}
Expand Down

0 comments on commit a7c1522

Please sign in to comment.