zoukankan      html  css  js  c++  java
  • spark处理jsonFile

    按照spark的说法,这里的jsonFile是特殊的文件:

    Note that the file that is offered as jsonFile is not a typical JSON file. Each line must contain a separate, self-contained valid JSON object. As a consequence, a regular multi-line JSON file will most often fail.

    它是按行分隔多个JSON对象,否则的话就会出错。

    以下是一个jsonFile的内容:

    scala> val path = "examples/src/main/resources/people.json"
    path: String = examples/src/main/resources/people.json
    
    scala> Source.fromFile(path).foreach(print)
    {"name":"Michael"}
    {"name":"Andy", "age":30}
    {"name":"Justin", "age":19}

    可以获取到一个SchemaRDD:

    scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
    scala> val jsonFile = sqlContext.jsonFile(path)
    scala> jsonFile.printSchema()
    root
     |-- age: integer (nullable = true)
     |-- name: string (nullable = true)

    针对该SchemaRDD可以做遍历操作:

    jsonFile.filter(row=>{val age=row(0).asInstanceOf[Int];age>=13&&age<=19}).collect

    既然是SchemaRDD,就可以采用SQL:

    scala> jsonFile.registerTempTable("people")
    scala> val teenagers = sqlContext.sql("SELECT name FROM people WHERE age >= 13 AND age <= 19")
    scala> teenagers.foreach(println)
  • 相关阅读:
    逆序数———线段树/树状数组
    线段树 模板
    博弈论--对称博弈
    matlab程序设计
    matlab矩阵的操作
    2nd 历年学生作品评论(3部)
    1st 四人小组项目
    1st 本周工作量及进度统计
    1st 结对编程:简易四则运算
    1st 英文文章词频统计
  • 原文地址:https://www.cnblogs.com/bluejoe/p/5115851.html
Copyright © 2011-2022 走看看