我正在尝试将动态框架中的字段转换为具有特定精度和比例的十进制。当我将数据类型设置为十进制时,它确实会转换为十进制。然而,精度和规模没有定义。当我尝试设置精度和比例时,我收到异常。
df = ResolveChoice.apply(
frame=df,
specs = [
("price", "cast:decimal(6,2)")]
)
pyspark.sql.utils.IllegalArgumentException:u'无效的小数规范十进制(6, 2)。应该是小数(精度,小数位数)'
我在调用 apply_mapping 函数时遇到了同样的错误。据我观察,精度和规模之间一定没有间隙。
这会抛出错误
decimal(6, 2)
而以下不是
decimal(6,2)
我知道有问题的代码中没有空格,但错误消息中有空格。