我有一个包含几个记录的数据帧,获取数据框的行字段的值 - 星火斯卡拉
我想重复这个数据帧中的每一行,以验证其每列的数据,做如下代码:
val validDF = dfNextRows.map {
x => ValidateRow(x)
}
def ValidateRow(row: Row) : Boolean = {
val nC = row.getString(0)
val si = row.getString(1)
val iD = row.getString(2)
val iH = row.getString(3)
val sF = row.getString(4)
// Stuff to validate the data field of each row
validateNC(nC)
validateSI(SI)
validateID(ID)
validateIF(IF)
validateSF(SF)
true
}
但是,做一些测试中,如果我想打印VAL NC的值(以确保我发送corret信息到每个功能),它并没有给我带来什么:
def ValidateRow(row: Row) : Boolean = {
val nC = row.getString(0)
val si = row.getString(1)
val iD = row.getString(2)
val iH = row.getString(3)
val sF = row.getString(4)
println(nC)
validateNC(nC)
validateSI(SI)
validateID(ID)
validateIF(IF)
validateSF(SF)
true
}
我如何知道我正在向每个函数发送正确的信息(我正在正确读取每行的数据)?
问候。
并且您提到的方法如何保存不满足使用的UDF的行?对不起这个虚拟问题。我用这些Spark和Scala东西播种新手 –
你可以在'udf'函数中定义'if else'声明。如果规则为“if”而不符合规则则为“else”。 –