我有一個包含幾個記錄的數據幀,獲取數據框的行字段的值 - 星火斯卡拉
我想重複這個數據幀中的每一行,以驗證其每列的數據,做如下代碼:
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」。 –