Solución:
Tratar:
>>> from pyspark.sql.functions import pow, lit
>>> from pyspark.sql.types import LongType
>>>
>>> num_places = 3
>>> m = pow(lit(10), num_places).cast(LongType())
>>> df = sc.parallelize([(0.6643, ), (0.6446, )]).toDF(["x"])
>>> df.withColumn("trunc", (col("x") * m).cast(LongType()) / m).
Spark 1.5.2
Simplemente puede usar el format_number(col,d)
función, que redondea la entrada numérica a d
lugares decimales y lo devuelve como un string
. En tu caso:
raw_data = raw_data.withColumn("LATITUDE_ROUND", format_number(raw_data.LATITUDE, 3))
Podrías usar el floor()
función. Entonces (sin probar) sugeriría:
raw_data = raw_data.withColumn("LATITUDE_TRUNCATED", floor(raw_data.LATITUDE))
Pero tenga cuidado con los valores negativos, como en https://math.stackexchange.com/questions/344815/how-do-the-floor-and-ceiling-functions-work-on-negative-numbers
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)