我有这一行:
set JAVA_OPTS="-Dfile.encoding=UTF-8"
只选择"数据"来自另一个DataFrame" patientTable"并逐行应用我的解密函数并创建另一个DataFrame。我怎么能:将加密函数应用于原始DataFrame,因为知道模式不会被修复(但"数据"属性将始终存在)或插入新的每一行DataFrame作为一个结构,它来自之前的相应行?
答案 0 :(得分:3)
使用udf:
import org.apache.spark.sql.types._
import org.apache.spark.sql.functions._
def decrypt(s: String) = s
val decryptUDF = udf(decrypt _)
patientTable.select(col("*"), decryptUDF(col("data").cast(StringType)))