У нас есть паркетные файлы, созданные с двумя разными схемами, в которых есть поля ID и Amount.
Файл:
file1.snappy.parquet
ID: INT
AMOUNT: DECIMAL (15,6)
Содержимое:
1,19500,00
2,198,34
file2.snappy.parquet
ID: INT
AMOUNT: DECIMAL (15,2)
Содержимое:
1,19500,00
3,198,34
Когда я загружаю оба файла вместе df3 = spark.read.parquet ("output /") и пытаюсь получить данные, он выводит схему Decimal (15,6) для файла, который имеет количество с Decimal (16,2), и данные этих файлов обрабатываются неправильно. Есть ли способ, которым я могу правильно получить данные для этого случая.
Окончательный результат, который я мог увидеть после выполнения df3.show ()
+ --- + -------- --------- +
| ID | СУММА |
+ --- + ----------------- +
| 1 | 1.950000 |
| 3 | 0,019834 |
| 1 | 19500.000000 |
| 2 | 198.340000 |
+ --- + ----------------- +
Здесь, если вы видите для 1-й и 2-й строки, сумма была изменена неправильно.
Ищу некоторые предложения по этому поводу. Я знаю, что если мы регенерируем файлы с той же схемой, эта проблема исчезнет go, это потребует регенерации и замены доставленных файлов, есть ли какой-либо другой временный способ, который мы можем использовать и иметь в виду, пока мы будем работать над восстановлением этих файлов .
~ R, Кри sh