众所周知,在早期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: