Преобразование отрицательного десятичного числа в положительное в наборе данных java spark

#apache-spark

#apache-искра #apache-spark

Вопрос:

У меня есть приведенный ниже фрейм данных.

 column_1
2.1
-3.4
-1.1
2.5
  

Я хочу преобразовать этот столбец в столбец с положительным номером, когда значение меньше 0 или, другими словами, если его отрицательное значение. Ввод осуществляется в десятичном формате, и вывод также должен быть в десятичном формате.

Я попытался преобразовать в строку и использовать abs(column_1) при lt (0), а затем преобразовать его в десятичное число. Но все значения преобразуются в null.

Есть идеи, как добиться этого в Java spark.

Требуемый результат:

 column_1
2.1
3.4
1.1
2.5
  

Комментарии:

1. Это должно сработать: df.select(abs('column_1').alias('column_1')).show() (при abs импорте из функций spark sql)

2. Будет ли вывод abs() по-прежнему в десятичном формате? Или оно будет преобразовано в float?

Ответ №1:

вы можете просто использовать abs , который доступен в Pyspark через пакет функций [Docs], но также может быть использован через SQL API [Docs].

Pyspark

 from pyspark.sql import functions as F
df = df.withColumn('column_1', F.abs('column_1')
  

Spark SQL

 SELECT abs(column_1)
FROM df;