我正在读取csv文件并创建pyspark数据帧。TrueValue和PickoutValue列包含“€”和“%”符号。阅读后,我得到的欧元符号为“� ".
Month TrueValue PickoutValue
1/1/2021 4728 52500
1/1/2021 4313 0
2/1/2021 3101 2500
2/1/2021 0 0
3/1/2021 6.90% 6.60%
2/1/2021 75.60% 70.00%
3/1/2021 � 373,020,387.05 � 223,885,862.89
我需要通过除以((TrueValue/PickoutValue)*100)来创建一个新列“ResultValue” 这就是我试过的
df_src=spark.read.csv(src_path, header=True, encoding='ISO-8859-1')
df=df.select('Month', \
'TrueValue',F.translate(F.col('TrueValue'),"%\u20ac� ","").alias('TrueValueReplaced') \
'PickoutValue',F.translate(F.col('PickoutValue'),"%\u20ac� ","").alias('PickoutValueReplaced')) \
.withColumn('ResultValue', (col('TrueValueReplaced')/col('PickoutValueReplaced')*100)) \
.drop('TrueValueReplaced').drop('PickoutValueReplaced')
但是,这并不能取代� 符号和im未获得所需的数据帧。 任何其他方法请提供建议
Month TrueValue PickoutValue TrueValueReplaced PickoutValueReplaced ResultValue
1/1/2021 4728 52500 4728 52500 9.005714285714287
1/1/2021 4313 0 4313 0 null
2/1/2021 3101 2500 3101 2500 124.03999999999999
2/1/2021 0 0 0 0 null
3/1/2021 6.90% 6.60% 6.90 6.60 104.54545454545456
2/1/2021 75.60% 70.00% 75.60 70.00 107.99999999999999
3/1/2021 373,020,387.05 223,885,862.89 373,020,387.05 223,885,862.89 null
目前没有回答
相关问题 更多 >
编程相关推荐