转换RDD / DataFrame中的列

时间:2016-07-20 20:25:02

标签: scala apache-spark apache-spark-sql spark-dataframe

我有这一行:

set JAVA_OPTS="-Dfile.encoding=UTF-8"

只选择"数据"来自另一个DataFrame" patientTable"并逐行应用我的解密函数并创建另一个DataFrame。我怎么能:将加密函数应用于原始DataFrame,因为知道模式不会被修复(但"数据"属性将始终存在)或插入新的每一行DataFrame作为一个结构,它来自之前的相应行?

1 个答案:

答案 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)))