Функция Math.abs в операторе Select в Scala - PullRequest
0 голосов
/ 07 июня 2018

У меня есть следующий код в Scala:

val FilteredPSPDF = PSPDF.select("accountname","amount", "currency", "datestamp","orderid","transactiontype")

Однако у меня есть некоторые значения в столбце «сумма», которые являются отрицательными, и мне нужно изменить их на положительные значения.Можно ли сделать эту арифметическую функцию в операторе Select?Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

В Spark SQL доступна функция abs.

Вы можете использовать selectExpr вместо select

PSPDF.selectExpr("accountname","abs(amount) as amount", "currency", "datestamp","orderid","transactiontype")

или использовать select перегруженная версия, которая принимает типы столбцов:

 PSPDF.select($"accountname", abs($"amount").as("amount"), $"currency", $"datestamp", $"orderid", $"transactiontype")
0 голосов
/ 07 июня 2018

Вы можете использовать when и negate встроенную функцию как

import org.apache.spark.sql.functions._
val FilteredPSPDF = PSPDF.select(col("accountname"), when(col("amount") < 0, negate(col("amount"))).otherwise(col("amount")), col("currency"), col("datestamp"),col("orderid"),col("transactiontype"))
...