Saltar al contenido

Mapeo de valores de fila de Spark DataSet en una nueva columna hash

El paso a paso o código que encontrarás en este post es la resolución más rápida y válida que hallamos a tu duda o dilema.

Solución:

Una forma es usar el withColumn función:

import org.apache.spark.sql.functions.col, hash
dataset.withColumn("hash", hash(dataset.columns.map(col):_*))

Resulta que Spark ya tiene esto implementado como el hash función dentro del paquete org.apache.spark.sql.functions

/**
 * Calculates the hash code of given columns, and returns the result as an int column.
 *
 * @group misc_funcs
 * @since 2.0
 */
@scala.annotation.varargs
def hash(cols: Column*): Column = withExpr 
  new Murmur3Hash(cols.map(_.expr))

Y en mi caso, aplicado como:

import org.apache.spark.sql.functions.col, hash

val newDs = typedRows.withColumn("hash", hash(typedRows.columns.map(col): _*))

Realmente tengo mucho que aprender sobre Spark sql :(.

Dejo esto aquí por si alguien más lo necesita. ¡Gracias!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *