Board logo

标题: 使用 JAQL 语言读写大数据文件(1) [打印本页]

作者: look_w    时间: 2018-7-7 16:58     标题: 使用 JAQL 语言读写大数据文件(1)

简介JAQL 是 Query Language for JSON 的简称,是 InfoSphere BigInsights 的主要组件之一。作为一种 high-level 的查询语言,它主要帮助用户使用和操纵“大数据”。它可以执行各种类型的数据分析,无论是需求分析,探索性分析或是实际的生产环境中,它都是一个自动化能力强大,并提供多种控制和丰富功能的脚本语言。
对于初学者来说,第一步是将各种不同格式的文本正确的读入,才能进行下一步的分析操作。而由于 JAQL 语言的灵活性,初学者很难正确的选择合适的适配函数来读取不同格式的文本。
本文列举了各种不同格式的 JSON 文本,以及读写范例,从而帮助初学者快速掌握 JAQL 语言的 I/O,为进一步的分析打下基础。
JAQL 脚本的读写函数JAQL 作为一个灵活的大数据处理脚本,可以很方便的处理各类数据存储格式。JAQL 可以处理的文件格式主要分为文本文件和二进制文件。其提供两类函数来进行这两种文件的读写,一类是用于读写的函数,一类是文件描述函数。
读写函数JAQL 脚本共有 5 个读写函数,分别是 jaqlGet() 函数、read() 函数、write() 函数、localRead() 函数和 localWrite() 函数:
文件描述函数文件描述函数主要用来描述输入文件的格式信息,可以将其理解为输入文件和读写文件之间的适配器,只有选择正确的适配器,读写函数才能正确的读取输入文件的内容。表格 1 中描述了常用的文件描述函数的名称,使用范围等信息。
表 1. 文件描述函数列表名称描述使用范围支持的文件类型del()用于读取以逗号(也可以是其他符号)为分隔符的文本文件当CSV文件中无空行、错行时,可以使用del()文件描述函数读取本地文件系统、分布式文件系统lines()用于读取以行为单位的文本文件读取以行为单位的文件,每一行可以是CSV文件,也可以是JSON格式的记录本地文件系统、分布式文件系统jaqltemp()用于JAQL临时文件,例如map-reduce的中间步骤该文件格式以JAQL模式存储数据,比一般的二进制格式更简洁,从而提高性能,节省磁盘空间。以jaqltemp()描述函数存储的文件,需要以它来读取本地文件系统、分布式文件系统seq()用于读取二进制格式的JSON文件当JSON格式的文件以二进制存储时,使用该描述函数读取本地文件系统、分布式文件系统jsonTextFile()用于从本地文件系统读写JSON格式的文本文件读写的文件内容必须是正确的JSON格式文件本地文件系统jsonText()可以读写本地文件系统或分布式文件系统的JSON格式文本文件读写的文件内容必须是正确的JSON格式文件本地文件系统、分布式文件系统http()用于读取http协议返回的JSON格式数据该函数的输入参数为URLURL
需要注意的是,JAQL 的二进制文件并不适合夸版本的应用,当需要在不同的 JAQL 版本中交叉使用时,需要将文件存储为文本格式。
当文件存储在本地文件系统时,我们通过给文件路径加前缀“file://”来标明,而当文件存储在分布式文件系统时,则加前缀“hdfs://”。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0