繁体   English   中英

添加一个新列以从数组列表中激发 dataframe

[英]add a new column to spark dataframe from array list

我正在尝试添加一个新列来触发数据框,如下所示:

val abc:Array[String] = ("a","b","c","d")

我正在尝试将此 Array[String] 作为新列添加到 dataframe 并尝试在该新列上执行 sha2

var words=abc.mkString("||") source = source.withColumn("newcolumn", sha2(col(words), 256).cast(StringType))

它遵守了,我得到的运行时错误

线程“主”org.apache.spark.sql.AnalysisException 中的异常:无法解析' a||b||c||d||e '给定的输入列:

预期的 output 应该是 dataframe,列名为 newcolum,值为 varchar64,sha2 为字符串数组与 || 的连接。

任何帮助表示赞赏。

您需要使用lit(words)并计算sha2(col,256)

Example

import org.apache.spark.sql.functions._

var words=abc.mkString("||")

val source = source.withColumn("newcolumn",sha2(lit(words),256))
source.show()
//+----------------------------------------------------------------+
//|newcolumn                                                       |
//+----------------------------------------------------------------+
//|b51ff0f0a6aa9f36848b8fdc10ece7242698a4061e141c761b1ac9a08634c067|
//+----------------------------------------------------------------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM