rapidjson读取json文件_SPARK入门 - json文件读取

552e13ba0a0ad21b8579fabe90e8454f.png

环境说明

spark.version=2.4.4

scala.version=2.11.12

文件示例

{"name": "Michael",  "age": 12}{"name": "Andy",  "age": 13}{"name": "Justin",  "age": 8, "friend_cnt": 2,"friends": [{"name": "Jobs"}, {"name": "Jacky"}]}

应用代码

object App {  def main(args: Array[String]): Unit = {    import org.apache.spark.sql.SparkSession    import org.apache.spark.storage.StorageLevel    import org.apache.spark.HashPartitioner    import org.apache.spark.Partitioner    val spark = SparkSession.builder().appName("App").master("local[4]").getOrCreate()    spark.sparkContext.setLogLevel("ERROR")    val jsonData = spark.read.json(      "C:bdsparkest3datainputjson"    )        jsonData.createOrReplaceTempView("tmp_view")    jsonData.printSchema()    spark.sql(      "select name,friends[0].name from tmp_view where friend_cnt>0"    ).collect().foreach(println)  }}

运行结果

root

|-- age: long (nullable = true)

|-- friend_cnt: long (nullable = true)

|-- friends: array (nullable = true)

| |-- element: struct (containsNull = true)

| | |-- name: string (nullable = true)

|-- name: string (nullable = true)

[Justin,Jobs]

补充说明

  • jsonData是一个DataFrame(org.apache.spark.sql.DataFrame),简称df
  • printSchema()可以输出该df的结构信息
  • 可以通过createOrReplaceTempView将df注册为一个临时表,通过用 [element] 指定下标来访问array中的元素,通过.访问struct中的嵌套元素,如friends[0].name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值