Искра: уменьшить двойную точность - PullRequest
0 голосов
/ 18 октября 2019

Я хочу объединить двойные поля в строковое поле, уменьшив точность (6 чисел).

например. из lat = 38.04900573076923 lon = -4.039010807692307

Я хочу location = 38.049005,4.090108

Как ни странно, это не работает должным образом:

df.withColumn("location", concat(col("lat").cast(DecimalType(6, 6)), lit(","), col("lon").cast(DecimalType(6, 6)))

В результате,location всегда равно null.

Глядя на DoubleType, он не наследуется от DecimalType, так что это звучит вполне логично.

Какой хороший способ сделать это?

Thx,

1 Ответ

0 голосов
/ 18 октября 2019

Как насчет простого округления значения?

df.withColumn("location", concat(round(col("lat"), 6), lit(","), round(col("lon"), 6)))

Вам может потребоваться привести round() к строке, но это может произойти по своей сути.

...