Apache spark 将java spark数据集中的负十进制数转换为正十进制数

Apache spark 将java spark数据集中的负十进制数转换为正十进制数,apache-spark,Apache Spark,我有下面的数据框 column_1 2.1 -3.4 -1.1 2.5 我想在值小于0时将此列转换为正数列,或者换言之,如果其值为负值,则将其转换为正数列。输入为十进制格式,输出也应为十进制格式 我尝试转换为字符串,在lt(0)时使用abs(列_1),然后将其转换为十进制。但所有值都将转换为null 你知道如何在JavaSpark中实现这一点吗 所需输出: column_1 2.1 3.4 1.1 2.5 您只需使用abs,它在Pyspark中通过函数包提供,但也可以通过SQL API使用

我有下面的数据框

column_1
2.1
-3.4
-1.1
2.5
我想在值小于0时将此列转换为正数列,或者换言之,如果其值为负值,则将其转换为正数列。输入为十进制格式,输出也应为十进制格式

我尝试转换为字符串,在lt(0)时使用abs(列_1),然后将其转换为十进制。但所有值都将转换为null

你知道如何在JavaSpark中实现这一点吗

所需输出:

column_1
2.1
3.4
1.1
2.5

您只需使用
abs
,它在Pyspark中通过函数包提供,但也可以通过SQL API使用

皮斯帕克

从pyspark.sql导入函数为F
df=df.withColumn('column_1',F.abs('column_1'))
sparksql

选择abs(第1列)
来自df;

这应该可以工作:
df.select(abs('column_1')。alias('column_1')).show()
(从spark sql的函数导入
abs
)时,abs()的输出仍然是十进制格式吗?还是转换为浮点格式?