Я создал функцию, которая принимает строку в качестве входных данных и дает строку в качестве выходных данных. Я планирую применить эту функцию к различным фреймам данных, чьи схемы будут отличаться друг от друга. Эти фреймы данных огромны с миллионами строк в каждом, но каждый фрейм данных имеет определенную схему
Я хочу создать другую функцию, которая будет вызывать первую функцию, объединить строку вывода из функции со строкой, которую она отправила функциии создайте новый фрейм данных, который будет выходом второй функции.
Обе функции будут написаны в среде spark-scala. Я очень новичок в spark-scala и не совсем уверен, как я могу объединить строки в новый фрейм данных
def returnTranformFunctionOutput(inputDataRow: Row, TransformFrame: Array[Row]): String = {
val resultString = "testdata"
resultString
}
def returnOutputDataframe(inputDataframe: DataFrame, TranformFrame: Array[Row]): DataFrame = {
val inputSchema = inputDataframe.schema
val outputSchema = StructType(StructField("outputVal", StringType, true) :: Nil)
val final_schema = StructType((inputSchema ++ outputSchema))
val newDf = inputDataframe.map(row => {
return Row.merge(row,TransformFunctions.returnTranformFunctionOutput(row,TranformFrame))
}),final_schema)
newDf
}
returnOutputDataframe
не компилируется и выдает мне несколько ошибок, включая no implicits found for parameter evidence$6: Encoder[U_]
и type mismatch: Required:Row Found:string
при выполнении Row.merge.
Можно ли объединить строку и строку, чтобы создать новую строку, которую затем можно объединить в новый кадр данных?