gpt4 book ai didi

python - round() 函数不适用于 databricks-Python

转载 作者:行者123 更新时间:2023-12-01 21:57:21 27 4
gpt4 key购买 nike

我正在尝试使用数据 block 中的 round() 函数将一些浮点值四舍五入为 2 位数字。但是,databricks python 不像普通 python 那样工作。

如果有请帮我看看原因和解决方法。

lis = [-12.1334, 12.23433, 1.2343, -104.444]
lis2 = [round(val,2) for val in lis]
print(lis2)

TypeError: Invalid argument, not a string or column: -12.1334 of type <type 'float'>. For column literals, use 'lit', 'array', 'struct' or 'create_map' function.

Image Proof of Code

最佳答案

只有当您从 spark.sql 中的 function 模块导入 spark round 函数时,这才可重现

spark round 函数需要一个字符串或一个列。这解释了错误。

您可以为导入添加别名,例如 import pyspark.sql.functions as F 而不是 from pyspark.sql.functions import *

你可以通过这种方式获取原始round方法。

import builtins
round = getattr(builtins, "round")

然后就可以执行了

lis = [-12.1334, 12.23433, 1.2343, -104.444]
lis2 = [round(val, 2) for val in lis]
print(lis2)

关于python - round() 函数不适用于 databricks-Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55872737/

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