云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

游戏服务器_vps和云主机_企业级

小七 141 0

这是一个系列的博客,自助建站服务,我们将在这里描述基于spring引导的应用程序,它是spring框架的一个扩展,通过删除spring的大部分样板代码和配置,帮助开发人员快速构建简单的基于web的应用程序,代码更少。在这里,我们可以将json转换为parquet格式,parquet的构建支持非常高效的压缩和编码方案。多个项目已经证明了对数据应用正确的压缩和编码方案对性能的影响。Parquet允许在每列级别指定压缩方案,并且经过未来验证,允许在发明和实现时添加更多编码。下面的链接

详细描述了拼花地板的格式https://parquet.apache.org/documentation/latest/

https://en.wikipedia.org/wiki/Apache\u Parquet

以下是博客系列

第1部分:Spring Boot rest API实现,用于将Json格式转换为parquet格式第2部分:RESTAPI实现从Json转换到OCR(),CSV文件第3部分:将拼花、orc、csv和文本文件存储到AWS S3 bucket

可以使用Spring初始化器创建基于maven的Spring boot web项目,在依赖项部分,选择Spring web starter、Spring dev tools、Spring security等。这里强制依赖项是Spring web starter来构建restful API,用于本地开发的开发工具和其他工具是可选的。但是,您可以根据自己的需求添加依赖项。下面的链接

Spring boot hello world web application中提到了一种逐步创建web应用程序的方法一步一步的Spring boot应用程序

项目快照如下所示

使用Spring Initializer创建项目时,需要添加以下库以及添加的Spring boot依赖项,如上图

中所示,springboot和apachespark库都被提到了。

projectlombok是一个Java库工具,用于在开发过程中最小化样板代码和节省时间。毫无疑问,Java是一种伟大的语言,但最近,它受到了社区的批评,原因之一是冗长。它生成代码,例如getter、setter和toString,IDE只在源代码中生成代码,而Lombok直接在".class"文件中生成代码。它是开发人员加速开发的有用工具之一。要下载库,请参阅链接。但是,要配置和了解更多关于Lombok库的信息,请参阅下面的链接

Lombok api的使用示例eclipse中Lombok jar的配置

Lombok依赖关系在下面提到

@Data:它为所有字段生成getter,一个有用的toString方法,以及检查所有非瞬态字段的hashCode和equals实现。还会为所有非最终字段生成setter,以及构造函数。

我们知道,在Spring boot中,基于应用程序是注释驱动的应用程序,因此,我们只需要如下所示对类进行注释,如

@RequestMapping("/toparquet"):使用此注释将web请求映射到具有灵活方法签名的请求处理类中的方法。

@RestController:使用此注释将类定义为rest端点类。类似地,其他的注解如GetMapping,PostMapping,RequestStatus等

@Slf4j它帮助lombok生成一个logger字段,我们可以很容易地记录所有的日志

在从json对象到parquet转换之前,让我们先了解parquet文件格式。apacheparquet是一种自描述的数据格式,淘客选品,它将模式或结构嵌入到数据本身中。它是以列为导向的二进制数据,每一列的值都被组织成相邻的,从而实现更好的压缩。它特别适用于从"宽"(有许多列)表中读取特定列的查询,因为只读取所需的列,并且IO最小化。当我们在处理大数据时,低价云服务器,存储此类数据所需的成本更高(Hadoop冗余存储数据,即每个文件有3个副本以实现容错),同时处理数据的存储成本还包括CPU、网络IO等成本。随着数据的增加,处理和存储的成本也随之增加。Parquet是大数据的选择,因为它在存储和处理方面既能满足需求,又能提高效率和性能。这将产生一个优化查询性能和最小化I/O的文件。具体来说,它具有以下特点:

Apache Parquet是面向列的,与基于行的CSV相比,它的设计带来了高效的数据列存储apacheparquet是从头开始构建的,它考虑了复杂的嵌套数据结构apacheparquet是为支持非常高效的压缩和编码方案而构建的(参见googlesnappy)apacheparquet允许降低数据文件的存储成本,并使用amazonathena、Redshift Spectrum、BigQuery和Azure datalakes等无服务器技术最大限度地提高查询数据的效率。在Apache软件基金会的许可下,可用于任何项目。"拼图""大数据"协会可能给人的印象是,格式仅限于特定的用例。由于Parquet已经走出了复杂Hadoop大数据解决方案的阴影

要了解更多关于Parquet文件格式的信息,请参阅下面的链接

Apache Parquet wikiApache Parquet文档

这里我们使用spark库将json数据转换为Parquet格式,使用该库的主要优点是提供任何形式的复杂json格式,它会将其转换为Parquet,但是还有其他库与avro Parquet库做同样的事情,但是在这种情况下,如果json结构是泛型的或者嵌套到3级以上,那么在这种情况下它将无法转换它。在这种情况下,我们需要通过读取第一组记录来创建parquet模式,然后再将其转换为parquet格式(我将在以后的博客中展示),在spark库方法中,它也首先读取模式,因为在任何情况下,如果我们需要将json或文本文件转换为任何其他格式的parquet格式,国内免费云服务器,但这里我们不需要预先读取记录,只需扫描输入数据和库,然后自己创建模式,然后将输入数据转换为parquet格式。