我正在使用spark.read.jdbc将postgres的数据加载到我的jupyter笔记本中。
数据库中有六列具有以下值:
0.7079593058049073, 0.6, 0.6, 0.4, 0.33, 0.777778
然后我从加载的数据中选择数据,并使用df.select()将其转换为pandasDataframe
0.7079593058049073, 0.6, 0.6, 0.4, 0.330000000000000000, 0.777800000000000000
然后我使用np.hstack将其转换为numpy,结果如下所示:
0.7079593058049073, 0.6, 0.6, 0.4, Decimal('0.330000000000000000'),Decimal('0.777800000000000000')
我不明白为什么相似的列会以不同的方式变化。我想防止它变成numpy中的十进制值。在我的postgres数据库中,所有这些列都是数字。为什么它们在python中的行为不同?
更新:
当我使用np.hstack方法将pandasDataframe与其他Dataframe组合时,我通过向pandasDataframe添加\u numpy(dtype=float)来修复我的问题。所以我的问题解决了。然而,我仍然无法解释这种行为,所以我将把这个问题留待讨论。
暂无答案!
目前还没有任何答案,快来回答吧!