apache-spark - Pyspark 在返回 0 的双精度数上转换整数
问题描述
在我的 PYspark 数据框中,我有一个类型为 double 的列。以下是它持有的数据:
| HV ratio|
+--------------------+
|4.819714653321546E-6|
|6.290848613094555E-6|
|4.669412994783916E-6
我正在尝试将数字四舍五入到小数点后 2 位。以下是我正在运行的查询:
hv_ratio.select(format_number(hv_ratio["HV ratio"].cast('integer'),2).alias('HV ratio')).show()
但它改为返回零(如下所示):
|HV ratio|
+--------+
| 0.00|
| 0.00|
| 0.00|
任何建议都受到高度赞赏。
解决方案
的实数4.819714653321546E-6
是0.000004819714653321546
。
当您转换为int
值时,我们将0
改为四舍五入到小数位,然后您将看到实际值。format_number
2
0.00
>5
Example:
df.withColumn("new_hvratio", format_number(col("HVratio"),21)).show(10,False)
#+--------------------+-----------------------+
#|HVratio |new_hvratio |
#+--------------------+-----------------------+
#|4.819714653321546E-6|0.000004819714653321546|
#+--------------------+-----------------------+
推荐阅读
- javascript - javascript中嵌套函数的try/catch问题
- boolean-expression - 通过替换括号重新排列布尔表达式
- flutter - 当我的 Draggable 小部件移动时,如何使我的拖动目标跟随?
- .net-core - Azure DevOps 将工件打包应用程序部署到 IIS
- c++ - 为什么输出窗口上没有显示输出?
- python-3.x - 如何在python中阅读特定的电子邮件
- image - tensorflow:使用重复图像构建数据集?
- python - 为什么 pandas diff 返回 -1e-09 而不是 0?
- xamarin - 使用 PdfSharp.Xamarin.Forms 创建 PDF 时无法显示 ListView 数据
- node.js - 强大的在Node js中保存没有扩展名的文件