Пользовательское форматирование вывода JSON с использованием Spark - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть набор данных с кучей значений BigDecimal.Я хотел бы вывести эти записи в файл JSON, но когда я это делаю, значения BigDecimal часто записываются с конечными нулями (123.4000000000000), но спецификация, которой мы должны соответствовать, не позволяет этого (по причинам, которые я нене понимаю).

Я пытаюсь выяснить, есть ли способ переопределить способ печати данных в JSON.В настоящее время моя лучшая идея - преобразовать каждую запись в строку, используя JACKSON, а затем записать данные, используя df.write().text(..) вместо JSON.

1 Ответ

0 голосов
/ 11 февраля 2019

Я предлагаю преобразовать десятичный тип в String перед записью в JSON.

Ниже приведен код в Scala, но вы можете легко использовать его в Java

import org.apache.spark.sql.types.StringType

# COLUMN_NAME is your DataFrame column name.

val new_df = df.withColumn('COLUMN_NAME_TMP', df.COLUMN_NAME.cast(StringType)).drop('COLUMN_NAME').withColumnRenamed('COLUMN_NAME_TMP', 'COLUMN_NAME')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...