我是 spark scala 的初學者。我嘗試過正則運算式,但它僅用于字串資料型別。我希望 Col_2 是十進制而不改變精度和比例。有人可以指導我解決這個問題。
Col_1 : 字串
Col_2 : 十進制(38,18) -->BigDecimal
Col_1 Col_2
ABC 2.000000000
DEF 2.501000000
XMN 0.00
RST 1.28
想要的結果
Col_1:字串 Col_2:字串
Col_1 Col_2
ABC 2
DEF 2.501
XMN 0
RST 1.28
uj5u.com熱心網友回復:
您可以使用下面的代碼實作此結果,但最好使用其中一種數字格式保留數字資料。
import spark.implicits._
val inputData = List(("ABC" -> 2.000000000),("DEF" -> 2.501000000),("XMN" -> 0.00),("RST" -> 1.28))
val resultDF = inputData.toDF
.selectExpr("_1 as Col_1", "regexp_replace(cast(_2 as String), '\\.?0 $', '') as Col_2")
resultDF.show
輸出
----- -----
|Col_1|Col_2|
----- -----
| ABC| 2|
| DEF|2.501|
| XMN| 0|
| RST| 1.28|
----- -----
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/451370.html
