Spark处理JindoFS上的数据,主要有两种方式,一种是直接调用文件系统接口使用;一种是通过SparkSQL读取存在JindoFS的数据表。
JindoFS配置
以EMR-3.35版本为例,创建名为emr-jfs的命名空间,相关配置参数示例如下:
- jfs.namespaces=emr-jfs
- jfs.namespaces.emr-jfs.oss.uri=oss://oss-bucket/oss-dir
- jfs.namespaces.emr-jfs.mode=block
处理JindoFS上的数据
- 调用文件系统
Spark中读写JindoFS上的数据,与处理其他文件系统的数据类似,以RDD操作为例,直接使用jfs的路径即可:
val a = sc.textFile("jfs://emr-jfs/README.md")
写入数据:
scala> a.collect().saveAsTextFile("jfs://emr-jfs/output")
- SparkSQL
创建数据库、数据表以及分区时指定Location到JindoFS即可,SparkSQL处理JindoFS上的数据与HiveSQL类似,详情请参见使用Hive查询JindoFS上的数据。对于已经创建好的存储在JindoFS上的数据表,直接查询即可。