首页
学习
活动
专区
圈层
工具
发布

Play For Scala 开发指南 - 第9章 Json 开发

我们可以把隐式 Format 对象定义在伴生对象中,这样的话就可以在任意位置执行转换而无需导入隐式对象: import play.api.libs.json.Json case class Address...Json 请求与 Json 响应 Json是目前使用最为广泛的数据交换格式,利用 Play 的 Json 库,我们可以开发非常健壮的 RESTful 应用。...} } 再次提醒,客户端 Post 请求必须携带Content-Type请求头,否则服务器端在执行request.body.asJson代码时将无法正确解析出 Json 数据。...在 Json 处理领域,Play 和 Scala 有着天然的优势,一方面通过 Scala 的优雅语法以及 Play 的 Json DSL,我们可以轻松地构建和处理 Json;另一方面,相比于 Java...的反射机制,利用 Scala 语言提供的编译器期 Macro,可以大大提升运行时处理速度,为开发高性能的响应式系统提供了底层的技术保障。

2K20

Flink实战(三) - 编程范式及核心概念

最初从源创建集合(例如,通过从文件,kafka主题或从本地的内存集合中读取)。结果通过接收器返回,接收器可以例如将数据写入(分布式)文件或标准输出(例如,命令行终端)。...最初通过在Flink程序中添加源来创建集合,并通过使用诸如map,filter等API方法对它们进行转换来从这些集合中派生新集合。...如果从程序中创建了一个JAR文件,并通过命令行调用它,则Flink集群管理器将执行您的main方法,getExecutionEnvironment()将返回一个执行环境,用于在集群上执行程序。...对于指定数据源,执行环境可以通过各种途径从文件中读取 逐行读取它们 CSV文件 使用完全自定义数据输入格式 要将文本文件作为一系列行读取,可以使用: val env = StreamExecutionEnvironment.getExecutionEnvironment...因此,无需将数据集类型物理打包到键和值中。 键是“虚拟的”:它们被定义为实际数据上的函数,以指导分组操作符。 注意:在下面的讨论中,将使用DataStream API和keyBy。

2.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Flink实战(三) - 编程范式及核心概念

    最初从源创建集合(例如,通过从文件,kafka主题或从本地的内存集合中读取)。结果通过接收器返回,接收器可以例如将数据写入(分布式)文件或标准输出(例如,命令行终端)。...最初通过在Flink程序中添加源来创建集合,并通过使用诸如map,filter等API方法对它们进行转换来从这些集合中派生新集合。...如果从程序中创建了一个JAR文件,并通过命令行调用它,则Flink集群管理器将执行您的main方法,getExecutionEnvironment()将返回一个执行环境,用于在集群上执行程序。...对于指定数据源,执行环境可以通过各种途径从文件中读取 逐行读取它们 CSV文件 使用完全自定义数据输入格式 要将文本文件作为一系列行读取,可以使用: val env = StreamExecutionEnvironment.getExecutionEnvironment...因此,无需将数据集类型物理打包到键和值中。 键是“虚拟的”:它们被定义为实际数据上的函数,以指导分组操作符。 注意:在下面的讨论中,将使用DataStream API和keyBy。

    1.8K40

    Play For Scala 开发指南 - 第8章 用户界面

    对于上面定义的模板文件,编译后生成的函数类型为: (name: String) => Html 由于编译后的模板函数就是普通的 Scala 函数,所以你可以在任何地方使用模板函数: val content...数据抽取 错误处理 页面渲染 在使用 Play 的 Form 相关功能之前,需要先导入如下路径: import play.api.data._ import play.api.data.Forms...我们从 Form 中抽取的结果类型为Tuple,但是当表单项比较多时使用Tuple类型就不太合适了。...//绑定成功     Ok(Json.obj("status" -> 0))   } ) 页面渲染 我们可以直接将 Form 对象作为模板参数传递到模板层,Play 专门为模板层提供了一个工具包(views.html.helper...模板文件中,我们可以很方便地将 userForm 中的数据渲染成 HTML 表单: @(userForm: Form[(String, String)]) @helper.form(action =

    2.1K20

    Note_Spark_Day07:Spark SQL(DataFrame是什么和数据分析(案例讲解))

    范例演示:将数据类型为元组的RDD或Seq直接转换为DataFrame。...{DataFrame, SparkSession} /** * 隐式调用toDF函数,将数据类型为元组的Seq和RDD集合转换为DataFrame */ object _03SparkSQLToDF...language)编程 调用DataFrame/Dataset API(函数),类似RDD中函数; DSL编程中,调用函数更多是类似SQL语句关键词函数,比如select、groupBy,同时要使用函数处理...读取电影评分数据,从本地文件系统读取,封装数据至RDD中 val ratingRDD: RDD[String] = spark.read.textFile("datas/ml-1m/ratings.dat...原因:在SparkSQL中当Job中产生Shuffle时,默认的分区数(spark.sql.shuffle.partitions )为200,在实际项目中要合理的设置。

    3K40

    Spark_Day07:Spark SQL(DataFrame是什么和数据分析(案例讲解))

    范例演示:将数据类型为元组的RDD或Seq直接转换为DataFrame。...{DataFrame, SparkSession} /** * 隐式调用toDF函数,将数据类型为元组的Seq和RDD集合转换为DataFrame */ object _03SparkSQLToDF...language)编程 调用DataFrame/Dataset API(函数),类似RDD中函数; DSL编程中,调用函数更多是类似SQL语句关键词函数,比如select、groupBy,同时要使用函数处理...读取电影评分数据,从本地文件系统读取,封装数据至RDD中 val ratingRDD: RDD[String] = spark.read.textFile("datas/ml-1m/ratings.dat...原因:在SparkSQL中当Job中产生Shuffle时,默认的分区数(spark.sql.shuffle.partitions )为200,在实际项目中要合理的设置。

    3.4K50

    Play For Scala 开发指南 - 第10章 MongoDB 开发

    Mongo Scala Driver 提供了一套基于 Java 的 Bson Api,无法与 Play Json 集成。...另外 Mongo Scala Driver 的数据库操作默认返回 Observable 类型,如果你忘记了调用 toFuture 方法,或是没有消费返回数据,则数据库操作实际上并不会被执行,在开发中很容易引入一些...Play Mongo 是由 PlayScala 社区为 Play Framework 开发的 MongoDB 模块, 该项目基于 MongoDB 官方的 Scala 驱动,并且提供了更多的实用功能,例如...本文将采用 Play Mongo 讲述 MongoDB 的开发细节。 Play Mongo 开发入门 Play Mongo 只是为我们提供了数据访问层,我们还需要基于访问层构建模型层。...常见操作 以下示例代码默认执行了 import play.api.libs.json.Json._ 导入, 所以 Json.obj() 可以被简写为 obj() 。

    2.1K10

    Spark SQL实战(04)-API编程之DataFrame

    因此,如果需要访问Hive中的数据,需要使用HiveContext。 元数据管理:SQLContext不支持元数据管理,因此无法在内存中创建表和视图,只能直接读取数据源中的数据。...在Scala和Java中,DataFrame由一组Rows组成的Dataset表示: Scala API中,DataFrame只是Dataset[Row]的类型别名 Java API中,用户需要使用Dataset...这些隐式转换函数包含了许多DataFrame和Dataset的转换方法,例如将RDD转换为DataFrame或将元组转换为Dataset等。...通过调用该实例的方法,可以将各种Scala数据类型(如case class、元组等)与Spark SQL中的数据类型(如Row、DataFrame、Dataset等)之间进行转换,从而方便地进行数据操作和查询..._等包,并通过调用toDF()方法将RDD转换为DataFrame。而有了导入spark.implicits._后,只需要直接调用RDD对象的toDF()方法即可完成转换。

    5.4K20

    Flink实战(五) - DataStream API编程

    使用该pathFilter,用户可以进一步排除正在处理的文件。 实现: 在引擎盖下,Flink将文件读取过程分为两个子任务 目录监控 数据读取 这些子任务中的每一个都由单独的实体实现。...如果watchType设置为FileProcessingMode.PROCESS_CONTINUOUSLY,则在修改文件时,将完全重新处理其内容。...如果watchType设置为FileProcessingMode.PROCESS_ONCE,则源扫描路径一次并退出,而不等待读者完成读取文件内容。当然读者将继续阅读,直到读取所有文件内容。...通过调用每个数据元的toString()方法获得字符串。 writeAsCsv(…)/ CsvOutputFormat 将元组写为逗号分隔值文件。行和字段分隔符是可配置的。...通过调用每个元素的toString()方法获得字符串。 writeAsCsv(…)/ CsvOutputFormat- 将元组写为逗号分隔值文件。行和字段分隔符是可配置的。

    2.3K10

    Note_Spark_Day08:Spark SQL(Dataset是什么、外部数据源、UDF定义和分布式SQL引擎)

    ,或者Seq序列中数据类型为元组 3、电影评分统计分析【使用DataFrame封装】 - SparkSQL中数据分析2种方式: 方式一:SQL编程 类似Hive中SQL语句 方式二:...,简易版本 集成Hive,从Hive表读取数据分析,也可以将数据保存到Hive表,企业中使用最多 使用Hive框架进行数据管理,使用SparkSQL分析处理数据 3、自定义UDF函数 2种方式...JSON格式文本数据,往往有2种方式: 方式一:直接指定数据源为json,加载数据,自动生成Schema信息 spark.read.json("") 方式二:以文本文件方式加载,然后使用函数(...表中读取数据,需要设置连接数据库相关信息,基本属性选项如下: 10-[掌握]-外部数据源之集成Hive(spark-shell) ​ Spark SQL模块从发展来说,从Apache Hive框架而来...通过Java JDBC的方式,来访问Thrift JDBC/ODBC server,调用Spark SQL,并直接查询Hive中的数据 * ii).

    4.9K40

    这里有一份Node.js入门指南和实践,请注意查收

    被调用的监听器返回的任何值都将会被忽略并丢弃。 下面我们通过几个简单的例子来学习 events 模块 1....(本文先不说),Node 对 HTTP 协议及相关 API 的封装比较底层,其仅能处理流和消息,对于消息的处理,也仅解析成报文头和报文体,但是不解析实际的报文头和报文体内容。..." // 错误: Unexpected token o in JSON at position 1 当数据可以从流读取时,可读流会使用 EventEmitter API 来通知应用程序 (比如例子中的...从流读取数据的方式有很多种。 可写流(比如例子中的 res)会暴露了一些方法,比如 write() 和 end() 用于写入数据到流。...对于.js 文件,会将其解析为 JavaScript 文本文件;而.json 会解析为 JOSN 文件文件;.node 会尝试解析为编译后的插件文件,并由 dlopen 进行加载。

    4.2K30

    Flink实战(四) - DataSet API编程

    最初从某些Source源创建数据集(例如,通过读取文件或从本地集合创建) 结果通过sink返回,接收器可以例如将数据写入(分布式)文件或标准输出(例如命令行终端) Flink程序可以在各种环境中运行...并从类型为SequenceFileInputFormat,Key class和Value类的指定路径中读取文件,并将它们作为Tuple2 返回。...Dataset 7.1 Scala实现 注意忽略第一行 includedFields参数使用 定义一个POJO 8 从递归文件夹的内容创建DataSet 8.1 Scala实现 9从压缩文件中创建...通过为每个元素调用用户定义的format()方法来获取字符串。 writeAsCsv(…)/ CsvOutputFormat 将元组写为逗号分隔值文件。行和字段分隔符是可配置的。...可选地,可以提供前缀(msg),其前缀为输出。这有助于区分不同的打印调用。如果并行度大于1,则输出也将以生成输出的任务的标识符为前缀。

    1.1K30

    Play Mongo 模块简介

    Play Mongo 是一个专门为 Play Framework 开发的 MongoDB 模块, 该项目基于 MongoDB 官方的 Scala 驱动,并且提供了更多的实用功能,例如, 更简洁多样的数据库交方式...Mongo Scala Driver 提供了一套基于 Java 的 Bson Api,无法与 Play Json 集成。...另外 Mongo Scala Driver 的数据库操作默认返回 Observable 类型,如果你忘记了调用 toFuture 方法,或是没有消费返回数据,则数据库操作实际上并不会被执行,在开发中很容易引入一些...该项目提供了一个 Play 模块,实现了 Bson 和 Json 的自动转换。...Play Mongo 不会过多关注底层驱动的实现细节,而是将关注点放在与 Play Framework 的集成上,为开发者提供舒适的开发体验。

    1.6K10

    Spark Core入门1【Spark集群安装、高可用、任务执行流程、使用ScalaJavaLambda编写Spark WordCount】

    =7077 保存退出 重命名并修改slaves.template文件 mv slaves.template slaves vi slaves 在该文件中添加子节点所在的位置(Worker节点,指定哪些机器需要作为从节点启动...上述的方式是从本地文件系统读取数据的WordCount计算,真实环境应该是基于HDFS分布式文件系统读取文件。...如果当前的机器或者集群的其他机器,其本地文件系统没有数据文件也没关系,基于HDFS分布式文件系统,集群上的每个节点都可以通过网络从HDFS中读取数据进行计算。...Hadoop中的HDFSClient,即基于HDFS的API读取数据。...Hadoop中的HDFSClient,即基于HDFS的API读取数据。

    1.8K30

    体验 Scala 语言的 Play Web 框架

    命令行工具 Play 框架官方文档提到 sbt 是一个强大的控制台和构建工具,我们可以从使用 sbt 工具生成一个空白的 Play 框架的项目开始。...项目结构 现在,可以使用 IntelliJ IDE 打开项目并查看项目的目录结构 在项目目录中,有四个文件夹是由 sbt 模板创建的,分别是 app/controllers, app/views, conf...简单来说我们将从 URL 中读取两个数并且在页面中展示这两个数的和 为了实现这个功能,我们需要在 HomeController.scala 控制器中添加新的方法,这个方法接收两个参数,计算它们的和并传递到视图模板中渲染...该 sum 参数在 HomeController.scala 中计算并传递给 Ok 函数,该函数返回状态代码为 200 内容为 OK 最后我们需要打开 conf/routes 文件并添加一个新的路径和...总结 在本文中,我们使用 Play Framework 的命令行工具创建了一个简单的网站,添加了一个新的视图模板,并使用参数化模板定义了一条新路由。

    2.7K50

    Spark Core快速入门系列(11) | 文件中数据的读取和保存

    从文件中读取数据是创建 RDD 的一种方式.   把数据保存的文件中的操作是一种 Action.   ...平时用的比较多的就是: 从 HDFS 读取和保存 Text 文件. 一....读取 Json 文件   如果 JSON 文件中每一行就是一个 JSON 记录,那么可以通过将 JSON 文件当做文本文件来读取,然后利用相关的 JSON 库对每一条数据进行 JSON 解析。   ...注意:使用 RDD 读取 JSON 文件处理很复杂,同时 SparkSQL 集成了很好的处理 JSON 文件的方式,所以实际应用中多是采用SparkSQL处理JSON文件。...如果用Spark从Hadoop中读取某种类型的数据不知道怎么读取的时候,上网查找一个使用map-reduce的时候是怎么读取这种这种数据的,然后再将对应的读取方式改写成上面的hadoopRDD和newAPIHadoopRDD

    2.6K20
    领券