您的位置:58脚本 > spark数据库 Spark SQL JSON数据集

spark数据库 Spark SQL JSON数据集

2023-05-10 06:32 Spark编程指南

spark数据库 Spark SQL JSON数据集

spark数据库 Spark SQL JSON数据集

spark数据库

Spark SQL JSON数据集

Spark SQL能够自动推断JSON数据集的模式,加载它为一个SchemaRDD。这种转换可以通过下面两种方法来实现

  • jsonFile :从一个包含JSON文件的目录中加载。文件中的每一行是一个JSON对象
  • jsonRDD :从存在的RDD加载数据,这些RDD的每个元素是一个包含JSON对象的字符串

注意,作为jsonFile的文件不是一个典型的JSON文件,每行必须是独立的并且包含一个有效的JSON对象。结果是,一个多行的JSON文件经常会失败

// sc is an existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

// A JSON dataset is pointed to by path.
// The path can be either a single text file or a directory storing text files.
val path = "examples/src/main/resources/people.json"
// Create a SchemaRDD from the file(s) pointed to by path
val people = sqlContext.jsonFile(path)

// The inferred schema can be visualized using the printSchema() method.
people.printSchema()
// root
//  |-- age: integer (nullable = true)
//  |-- name: string (nullable = true)

// Register this SchemaRDD as a table.
people.registerTempTable("people")

// SQL statements can be run by using the sql methods provided by sqlContext.
val teenagers = sqlContext.sql("SELECT name FROM people WHERE age >= 13 AND age <= 19")

// Alternatively, a SchemaRDD can be created for a JSON dataset represented by
// an RDD[String] storing one JSON object per string.
val anotherPeopleRDD = sc.parallelize(
  """{"name":"Yin","address":{"city":"Columbus","state":"Ohio"}}""" :: Nil)
val anotherPeople = sqlContext.jsonRDD(anotherPeopleRDD)
阅读全文
以上是58脚本为你收集整理的spark数据库 Spark SQL JSON数据集全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  Spark GraphX Pregel API

    Spark GraphX Pregel API

    Spark GraphXPregel API图本身是递归数据结构,顶点的属性依赖于它们邻居的属性,这些邻居的属性又依赖于自己邻居的属性。所以许...

  • st.起步 Storm 起步

    st.起步 Storm 起步

    准备开始准备开始在本章,我们要创建一个 Storm 工程和我们的第一个 Storm 拓扑结构。NOTE: 下面假设你的 JRE 版本在 1.6 以上。...

  •  Neo4j CQL - CREATE+MATCH+RETURN命令

    Neo4j CQL - CREATE+MATCH+RETURN命令

    在Neo4j CQL中,我们不能单独使用MATCH或RETURN命令,因此我们应该结合这两个命令从数据库检索数据。 例如:本示例演示如何使用...

  • neo4j 删除 Neo4j CQL - REMOVE删除

    neo4j 删除 Neo4j CQL - REMOVE删除

    有时基于我们的客户端要求,我们需要向现有节点或关系添加或删除属性。 我们使用Neo4j CQL SET子句向现有节点或关系添加新属性。...

  • neo4j如何合并关系 Neo4j CQL - 合并

    neo4j如何合并关系 Neo4j CQL - 合并

    Neo4j使用CQL MERGE命令 - 创建节点,关系和属性为从数据库检索数据 MERGE命令是CREATE命令和MATCH命令的组合。 MERGE = CREATE ...

  •  MS Access通配符

    MS Access通配符

    通配符是可以在文本值中代表未知字符的特殊字符,可用于查找具有相似但不相同数据的多个项目。通配符还可以帮助在指定的模式匹配...

  •  SQLite SQL注入

    SQLite SQL注入

    如果您的站点允许用户通过网页输入,并将输入内容插入到 SQLite 数据库中,这个时候您就面临着一个被称为 SQL 注入的安全问题。...

  •  SQLite PRAGMA

    SQLite PRAGMA

    SQLite 的 PRAGMA 命令是一个特殊的命令,可以用在 SQLite 环境内控制各种环境变量和状态标志。一个 PRAGMA 值可以被读取,也可...

  • mariadb 函数 MariaDB 空值

    mariadb 函数 MariaDB 空值

    使用NULL值时,请记住它们是未知值。 它们不是空字符串或零,它们是有效值。 在表创建中,列规范允许将它们设置为接受空值,或拒...

  • mysql临时表会占用运行内存吗? MariaDB 临时表

    mysql临时表会占用运行内存吗? MariaDB 临时表

    由于速度或一次性数据,一些操作可能受益于临时表。 临时表的生命期在会话终止时结束,无论是从命令提示符,PHP脚本还是通过客户...

© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS