0
Sparkを使用して値のない数値フィールドにnullを設定する必要があるソリューションを探しています。私が書いたコードは以下の通りである:sparkを使用してHiveテーブルの数値データ型にnullを設定する
val myDF = sqlContext.sql("from mystg.my_acct_table select id,amt,tot_amt where id=12345")
myDF.map(row => {val row1 = row.getAs[Double]("tot_amt")
val my_tot_amt = {
if(row1.isNaN())
null.asInstanceOf[Double]
else
Math.abs(row1.toDouble)
}
Row(row(0),row(1),my_tot_amt)
})
Iはまた、行(ロウ(0)、行(1)、my_tot_amt)上記論理を入れてみました。
Row(row(0),row(1),(if(row1.isNaN())
null.asInstanceOf[Double]
else
Math.abs(row1.toDouble)))
しかし、私は出力を としています。 8687992537618075 | 1163.35 | 0.0 |
予想される出力は です。 8687992537618075 | 1163.35 | null |
ハイブの値をチェックすると空になります。つまり、そのフィールドにはnullが設定されていません。だから私はそのようなレコードをチェックし、値をnullに更新する必要があります。はい、私は値を0.0にしたくないが、nullにする必要があります。 –