我有一个带有一些属性的数据帧,它有下一个外观:
+-------+-------+
| Atr1 | Atr2 |
+-------+-------+
| 3,06 | 4,08 |
| 3,03 | 4,08 |
| 3,06 | 4,08 |
| 3,06 | 4,08 |
| 3,06 | 4,08 |
| ... | ... |
+-------+-------+
如您所见,数据帧的Atr1和Atr2的值是带有“,”字符的数字。这是因为我已经从CSV中加载了那些数据,其中DoubleType数字的小数由','表示。
当我将数据加载到数据帧中时,值将转换为字符串,因此我对这些属性应用了从字符串到DoubleType的转换,如下所示:
df = df.withColumn("Atr1", df["Atr1"].cast(DoubleType()))
df = df.withColumn("Atr2", df["Atr2"].cast(DoubleType()))
但当我这样做时,值被转换为空
+-------+-------+
| Atr1 | Atr2 |
+-------+-------+
| null | null |
| null | null |
| null | null |
| null | null |
| null | null |
| ... | ... |
+-------+-------+
我想原因是双精度小数必须用“.”而不是“,”分隔。但是我没有机会编辑CSV文件,所以我想用“.”替换数据帧中的“,”符号,然后将转换应用到DoubleType。
我该怎么做?
目前没有回答
相关问题 更多 >
编程相关推荐