spark中读取json_【Spark】使用DataFrame读取复杂JSON中的嵌套数组

本文介绍了在Spark 2.1.0中如何使用DataFrame读取包含嵌套数组的复杂JSON数据,并通过explode()函数将其打平,以便处理和访问数组中的每个元素。示例展示了从JSON文件中提取用户地址信息并将其拆分为单独记录的过程。

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

众所周知,在早期Spark版本中就已经支持读取Json格式的数据文件,并能够直接转换为数据库表,以方便我们进行处理数据,在本篇文章中我们将介绍如何通过Spark API很简单地读取Json数据,并进一步讲解,读取复杂Json中的嵌套数组。

本次使用的各个组件版本设定如下:

Spark: 2.1.0

Scala 2.11.8

Hadoop 2.6.2

加载Json数据

我们可以简单地通过SQLContext读取Json文件

val dfSQLContext = sqlContext.read.json("/user/hadoop/flume/my_crawler_jd_report/*/*")

或者通过SparkSession读取Json文件

val dfSparkSession = spark.read.json("/user/hadoop/flume/my_crawler_jd_report/*/*")

以上两种方式读取的结果是一样的

scala> val dfSQLContext = sqlContext.read.json("/user/hadoop/flume/my_crawler_jd_report/*/*")

dfSQLContext: org.apache.spark.sql.DataFrame = [addTime: string, channel: string ... 3 more fields]

scala> val dfSparkSession = spark.read.json("/user/hadoop/flume/my_crawler_jd_report/*/*")

dfSparkSession:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值