Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 在RDD/DataFrame中转换列_Scala_Apache Spark_Apache Spark Sql_Spark Dataframe - Fatal编程技术网

Scala 在RDD/DataFrame中转换列

Scala 在RDD/DataFrame中转换列,scala,apache-spark,apache-spark-sql,spark-dataframe,Scala,Apache Spark,Apache Spark Sql,Spark Dataframe,我有一句话: val decryptedDFData = sqlContext.read.json(patientTable.select("data").map(row => decrypt(row.toString()))) 它只是从另一个DataFrame“patientTable”中选择“data”列,逐行应用我的解密函数并创建另一个DataFrame。如何:在知道模式不会被修复(但“data”属性将始终存在)的情况下,将加密功能应用于原始数据帧,或者将新数据帧的每一行作为结

我有一句话:

val decryptedDFData = sqlContext.read.json(patientTable.select("data").map(row => decrypt(row.toString())))  
它只是从另一个DataFrame“patientTable”中选择“data”列,逐行应用我的解密函数并创建另一个DataFrame。如何:在知道模式不会被修复(但“data”属性将始终存在)的情况下,将加密功能应用于原始数据帧,或者将新数据帧的每一行作为结构从之前插入到对应的行中?

使用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)))