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")
    rdd_data

    寫入數據:

    scala> a.collect().saveAsTextFile("jfs://emr-jfs/output")
  • SparkSQL

    創建數據庫、數據表以及分區時指定Location到JindoFS即可,SparkSQL處理JindoFS上的數據與HiveSQL類似,詳情請參見使用Hive查詢JindoFS上的數據。對于已經創建好的存儲在JindoFS上的數據表,直接查詢即可。