【发布时间】:2015-08-18 17:53:14
【问题描述】:
我在ipython 到pyspark 中有一个数字列表,如下所示:
df = pd.DataFrame(index=range(N))
df['total'] = data.map(lambda x:(x.features[0]+x.features[1]+x.features[2])).collect()
现在这个列表中的一些数字在小数点后有两位数,如10.17,但有些数字在小数点后少于两位数,如9.1,或者有些没有小数点,如5或23。我想要的是让所有数字在小数点后两位数。如果它们没有两位数,则应添加结尾 0,如上面的 9.1 应变为 9.10 和 5 应变为 5.00。我该怎么做?
注意:我看到过重新格式化的帖子,但我的重新格式化是专门针对 pyspark 和 map() 函数。我如何在那里重新格式化?
【问题讨论】:
-
而且它们必须存储为浮点数?
-
@Tim 我看到了那篇文章,但是我如何在这里使用 data.map() 语句来做到这一点。我不关心他们以这种格式存储。我只想展示它们。
-
显示它们是什么意思?如果您需要固定精度的数字,您应该使用
decimal。如果您只是想要特定的输出,您可以映射到具有特定格式的字符串。
标签: python apache-spark ipython pyspark