我想将双字段连成字符串字段,以降低精度(6个数字)。
例如从 lat = 38.04900573076923 lon = -4.039010807692307
我想要 位置= 38.049005,4.090108
奇怪的是,这无法按预期进行:
df.withColumn("location", concat(col("lat").cast(DecimalType(6, 6)), lit(","), col("lon").cast(DecimalType(6, 6)))
结果,位置始终为空。
看着DoubleType,它没有继承自DecimalType,所以听起来很合逻辑。
做这件事的好方法是什么?
Thx。
答案 0 :(得分:0)
如何舍入取整值呢?
df.withColumn("location", concat(round(col("lat"), 6), lit(","), round(col("lon"), 6)))
您可能需要将round()
强制转换为字符串,但这可能是固有的。