【问题标题】:Custom Formatting of JSON output using Spark使用 Spark 自定义 JSON 输出格式
【发布时间】:2019-07-05 01:18:56
【问题描述】:

我有一个包含一堆 BigDecimal 值的数据集。我想将这些记录输出到 JSON 文件,但是当我这样做时,BigDecimal 值通常会用尾随零写入(123.4000000000000),但我们必须遵守的规范不允许这样做(因为我不这样做)不懂)。

我正在尝试查看是否有一种方法可以覆盖数据打印到 JSON 的方式。 目前,我最好的想法是使用 JACKSON 将每条记录转换为字符串,然后使用 df.write().text(..) 而不是 JSON 写入数据。

【问题讨论】:

    标签: json apache-spark jackson


    【解决方案1】:

    我建议在写入 JSON 之前将 Decimal 类型转换为 String。

    以下代码是 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')
    

    【讨论】:

      猜你喜欢
      • 2017-01-16
      • 2018-06-30
      • 2013-03-05
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 2017-07-12
      相关资源
      最近更新 更多