You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2023/03/07 09:50:08 UTC
[linkis] branch dev-1.3.2 updated: code optimization (#4239)
This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.3.2
in repository https://gitbox.apache.org/repos/asf/linkis.git
The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
new 0599dda8c code optimization (#4239)
0599dda8c is described below
commit 0599dda8c18f90f0bb1a270e5a550405fc8abbda
Author: huangKai-2323 <62...@users.noreply.github.com>
AuthorDate: Tue Mar 7 17:50:01 2023 +0800
code optimization (#4239)
* code optimization
---
.../linkis/storage/excel/StorageExcelWriter.scala | 26 +++++++++++++++++++---
.../computation/client/SeatunnelOnceJobTest.java | 4 ++--
.../jobhistory/restful/api/QueryRestfulApi.java | 2 +-
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/excel/StorageExcelWriter.scala b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/excel/StorageExcelWriter.scala
index 2aff4af61..8d0f0bdde 100644
--- a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/excel/StorageExcelWriter.scala
+++ b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/excel/StorageExcelWriter.scala
@@ -27,6 +27,7 @@ import org.apache.poi.ss.usermodel._
import org.apache.poi.xssf.streaming.{SXSSFCell, SXSSFSheet, SXSSFWorkbook}
import java.io._
+import java.math.BigDecimal
import java.util
import java.util.Date
@@ -163,13 +164,19 @@ class StorageExcelWriter(
case LongType => cell.setCellValue(elem.toString.toLong)
case BigIntType => cell.setCellValue(elem.toString.toLong)
case FloatType => cell.setCellValue(elem.toString.toFloat)
- case DoubleType => cell.setCellValue(elem.toString.toDouble)
+ case DoubleType =>
+ doubleCheck(elem.toString)
+ cell.setCellValue(elem.toString.toDouble)
case CharType => cell.setCellValue(DataType.valueToString(elem))
case VarcharType => cell.setCellValue(DataType.valueToString(elem))
case DateType => cell.setCellValue(getDate(elem))
case TimestampType => cell.setCellValue(getDate(elem))
- case DecimalType => cell.setCellValue(DataType.valueToString(elem).toDouble)
- case BigDecimalType => cell.setCellValue(DataType.valueToString(elem).toDouble)
+ case DecimalType =>
+ doubleCheck(DataType.valueToString(elem))
+ cell.setCellValue(DataType.valueToString(elem).toDouble)
+ case BigDecimalType =>
+ doubleCheck(DataType.valueToString(elem))
+ cell.setCellValue(DataType.valueToString(elem).toDouble)
case _ =>
val value = DataType.valueToString(elem)
cell.setCellValue(value)
@@ -189,6 +196,19 @@ class StorageExcelWriter(
}
}
+ /**
+ * Check whether the double exceeds the number of digits, which will affect the data accuracy
+ * @param elemValue
+ */
+ private def doubleCheck(elemValue: String): Unit = {
+ val value = new BigDecimal(elemValue).stripTrailingZeros
+ if ((value.precision - value.scale) > 15) {
+ throw new NumberFormatException(
+ s"Value ${elemValue} error : This data exceeds 15 significant digits."
+ );
+ }
+ }
+
override def flush(): Unit = {
getWorkBook.write(os)
val content: Array[Byte] = os.toByteArray
diff --git a/linkis-computation-governance/linkis-client/linkis-computation-client/src/test/java/org/apache/linkis/computation/client/SeatunnelOnceJobTest.java b/linkis-computation-governance/linkis-client/linkis-computation-client/src/test/java/org/apache/linkis/computation/client/SeatunnelOnceJobTest.java
index d48120f57..fea472708 100644
--- a/linkis-computation-governance/linkis-client/linkis-computation-client/src/test/java/org/apache/linkis/computation/client/SeatunnelOnceJobTest.java
+++ b/linkis-computation-governance/linkis-client/linkis-computation-client/src/test/java/org/apache/linkis/computation/client/SeatunnelOnceJobTest.java
@@ -23,7 +23,7 @@ import org.apache.linkis.computation.client.utils.LabelKeyUtils;
public class SeatunnelOnceJobTest {
public static void main(String[] args) {
- LinkisJobClient.config().setDefaultServerUrl("http://ip:9001");
+ LinkisJobClient.config().setDefaultServerUrl("http://127.0.0.1:9001");
String code =
"\n"
+ "env {\n"
@@ -57,7 +57,7 @@ public class SeatunnelOnceJobTest {
.addLabel(LabelKeyUtils.ENGINE_CONN_MODE_LABEL_KEY(), "once")
.addStartupParam(Configuration.IS_TEST_MODE().key(), true)
.addExecuteUser("hadoop")
- .addJobContent("runType", "sspark")
+ .addJobContent("runType", "spark")
.addJobContent("code", code)
.addJobContent("master", "local[4]")
.addJobContent("deploy-mode", "client")
diff --git a/linkis-public-enhancements/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java b/linkis-public-enhancements/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
index a1c0d20e9..f627fb6b1 100644
--- a/linkis-public-enhancements/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
+++ b/linkis-public-enhancements/linkis-jobhistory/src/main/java/org/apache/linkis/jobhistory/restful/api/QueryRestfulApi.java
@@ -190,7 +190,7 @@ public class QueryRestfulApi {
if (StringUtils.isEmpty(instance)) {
instance = null;
} else {
- if (!QueryUtils.checkNameValid(instance)) {
+ if (!QueryUtils.checkInstanceNameValid(instance)) {
return Message.error("Invalid instances : " + instance);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org