#python #pyspark
Вопрос:
Это моя функция, которую я использую для записи файлов:
#pyspark
def write_file(dataframe=None, dest_dir=None, filename=None):
import os
temp_dir = dest_dir '/tmp/'
dataframe.coalesce(1)
.write
.format('com.databricks.spark.csv')
.mode('overwrite')
.option('header', True)
.option("emptyValue", None)
.option('nullValue', None)
.option('delimiter', ';')
.option('DataFormat', 'dd-MMM-yyyy')
.option('encoding', 'UTF-8')
.save(temp_dir)
Мне нужно настроить его так, чтобы он заменял десятичный разделитель точек запятой. Когда я открываю csv/txt файлы, загруженные с этим в Excel, он рассматривает, например, 1,000000 как миллион вместо 1. Эти поля имеют десятичный формат(38,12).
Ответ №1:
Просто замените точку на запятую для этого столбца —
df = df.withColumn('some_col', F.regexp_replace('some_col', ',', '.').cast('float'))
теперь напишите как есть