前面已经讲过FEA原语的分类,今天将为大家讲解文本数据源的加载与存储,在讲解之前我们先总结一下FEA支持的数据源。
1、支持Hadoop架构的数据源,如HDFS、HBASE等。
2、支持传统关系型数据库,如Oracle、Postgres、Mysql等。使得一些不能迁入到大数据平台的数据同样可以使用FEA进行分析。
3、通过REST接口扩展,可以很好的支持第三方平台的数据,如阿里云的大数据开放处理平台ODPS和内存数据库ADS等。
4、各种格式的文本文件的加载与存储。
多种数据源的支持,使得FEA能够接入更多类型的数据来进行关联分析、碰撞比对等运算,而不要求用户一定要进行数据的大规模整合,既降低了用户的使用成本,又发挥了多数据关联分析的价值。
一、文本数据源加载与存储语句格式
FEA支持对CSV、EXCEL、PKL等数据文件进行分析处理,可以把每一项数据记录加载到FEA引擎中。同时,也可以将FEA引擎中的数据输出为CSV、EXCEL、PKL等数据文件。那么,加载与存储FEA语句的格式是什么呢?见下图:
二、文本数据源加载详解
以下是FEA 文本格式加载原语的示例,见下图:
在加载LOG\CSV等文件格式时,经常会加入参数sep=”$”,encoding=‘utf8’,header=-1
那么,这些参数到底表示什么意义呢?
听我娓娓道来。
1、encoding参数
一般来讲Windows操作系统的文件默认编码方式为gbk,而Linux操作系统的文件默认编码方式为utf8,FEA分析工具在读取用户上传的数据文件时默认的解码方式是gbk。用户上传编码方式为utf8的数据文件后,FEA分析工具在对该数据文件进行加载时,原语必须加上with (encoding=‘utf8’)子句,以方便FEA用uft8进行文件解码。
2、sep参数
FEA分析工具加载csv文件时,默认的分隔符为","(即 with (sep=','))。如果用户在加载csv文件时以’|’为分隔符,那么就是sep='|'。如果加载文本文件整一行,就用文本不存在的特殊字符。
3、 header参数
加载csv文件时,默认为header=0,即csv文件内容的第一行为列名;如果CSV文件第一行不是列名而是数据,这时可以设置为header=-1,此时生成的DF表将从0开始按顺序生成列名。
三、文本数据源存储详解
以下是FEA 文本格式存储原语的示例,见下图:
在你存储完结果数据并下载查看时,你经常会发现文件会多出index列,那么我们怎么去除这一列呢?
技巧在Index参数这里,格式如下:
index=True 或者index=False
其中,默认设置为True,如果不想带index可设置为False。
注意index参数,只在store命令中生效。
四、其他
随着FEA的发展,对文件编码的识别将变的自动化,将来encoding参数会使用的比较少。如果你一定要强制设置文件编码格式,需要将encoding参数放置在最前面。
请同学们赶紧按照本武功心法,回家练习基础功,等你练到第三层,我们就可以出师征战大数据分析了。下次我们将讲NOSQL数据库的装载,请期待!
往期精彩文章: