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)