spark dataframe 数据 转化为 json 或者自定义格式的字符串

本文介绍如何使用Spark创建DataFrame,并提供了将DataFrame转换为特定格式JSON的方法。通过自定义函数实现DataFrame到JSON的转换,展示了填充后的JSON结果及原始JSON结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


创建dataframe


  import org.apache.spark.sql.types._
      val schema = StructType(List(
        StructField("integer_column", IntegerType, nullable = true),
        StructField("string_column", StringType, nullable = true),
        StructField("date_column", DateType, nullable = true)
      ))


      val rdd = spark.sparkContext.parallelize(Seq(
        Row(1, "First Value", java.sql.Date.valueOf("2010-01-01")),
        Row(2, "Second Value", java.sql.Date.valueOf("2010-02-01")),
        Row(null, "Second Value", java.sql.Date.valueOf("2010-02-01"))
      ))

在这里插入图片描述


官方的方法

df_fill.toJSON.collectAsList.toString

自定义格式

package utils

import org.apache.spark.sql.DataFrame
object MyDataInsightUtil {

  def dataFrame2Json(data:DataFrame,num:Int=10)={
    val dftopN = data.limit(num)

    val arr = dftopN.collect().map(x=>x.toSeq.mkString("\"","\",\"","\"")).mkString("|")

    val columnName = (dftopN.columns.mkString("\"","\",\"","\""))

    (columnName+"|"+ arr)
  }

}

结果:

填充后结果
“integer_column”,“string_column”,“date_column”|“1”,“First Value”,“2010-01-01”|“2”,“Second Value”,“2010-02-01”|"-3",“Second Value”,“2010-02-01”
原始结果
“integer_column”,“string_column”,“date_column”|“1”,“First Value”,“2010-01-01”|“2”,“Second Value”,“2010-02-01”|“null”,“Second Value”,“2010-02-01”


参考文献

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shiter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值