gpt4 book ai didi

java - Spark SQL 长 double 值带有指数

转载 作者:行者123 更新时间:2023-11-30 06:41:03 25 4
gpt4 key购买 nike

我有一个 amount 值,我们正在从文件中读取该值并尝试在控制台上打印。

当我们尝试打印时,它显示为指数,另一个问题是当我们尝试强制转换时,它显示为null

输入值:

{"amt":987654321111.0}

示例代码:

df.show();
df.registerTempTable("input");
DataFrame outputDF = sqlContext.sql("select cast(amt as decimal) from input");
outputDF.show();

输出:

+----------------+
| amt|
+----------------+
|9.87654321111E11|
+----------------+

root
|-- amt: double (nullable = true)

root
|-- amt: decimal(10,0) (nullable = true)

+----+
| amt|
+----+
|null|
+----+

最佳答案

使用 StructType createDecimalType 方法解决了问题。

StructType schema = new StructType().add("amt", DataTypes.createDecimalType(38,10));

DataFrame df = sqlContext.read().schema(schema).json("test.json");

关于java - Spark SQL 长 double 值带有指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44366720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com