给定以下DataSet
值作为inputData
:
column0 column1 column2 column3
A 88 text 99
Z 12 test 200
T 120 foo 12
在Spark中,计算新的
hash
列并将其附加到新的DataSet
hashedData
是一种有效的方法,其中hash
被定义为对inputData
的每个行值应用MurmurHash3
。具体来说,hashedData
如下:column0 column1 column2 column3 hash
A 88 text 99 MurmurHash3.arrayHash(Array("A", 88, "text", 99))
Z 12 test 200 MurmurHash3.arrayHash(Array("Z", 12, "test", 200))
T 120 foo 12 MurmurHash3.arrayHash(Array("T", 120, "foo", 12))
如果需要更多具体信息,请告诉我。
非常感谢您的帮助!
MurmurHash3
函数(即Array("column0", "column1", "column2", "column3")
)。我会尝试找到一种在映射函数上下文中提取实际行值的方法。 - Jesús Zazuetadf.withColumn("concat", concat(df.columns.map(col):_*))
它们还有其他方法,例如指定连接分隔符。 - Lo-Tan