1、spark如果要访问OSS文件,需要在POM.xml文件中添加一些依赖。
要添加的依赖是:
(1)hadoop-jfs
(2)jss-sdk-java
添加方法,在<dependencies>...</dependencies>中添加
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-jfs</artifactId>
<version>${hadoop.jfs.version}</version>
</dependency>
<dependency>
<groupId>com.${XXX你的公司的jss群组}.jss</groupId>
<artifactId>jss-sdk-java</artifactId>
<version>${jfs.version}</version>
</dependency>
因为这里的版本使用了变量,所以在<properties>.... </properties>中添加版本变量。当然这里的版本都是你使用的公司开发的版本,请根据自己的情况来调整。
<jfs.version>1.4.2-SNAPSHOT</jfs.version>
<hadoop.jfs.version>2.0.2-SNAPSHOT</hadoop.jfs.version>
2、访问方法
上面配置完成后,接下来就可以使用fs.jfs.accessKey、fs.jfs.accessKey、fs.jfs.endPoint 来访问OSS文件了。
//in scala
object Test{
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("Test")
.enableHiveSupport()
.getOrCreate()
val accessKey = "你的accessKey"
val secretKey = "你的secretKey"
val endPoint = "你的endPoint"
val inputPath = "你的inputPath"
spark.sparkContext.hadoopConfiguration.set("fs.jfs.accessKey", accessKey)
spark.sparkContext.hadoopConfiguration.set("fs.jfs.secretKey", secretKey)
spark.sparkContext.hadoopConfiguration.set("fs.jfs.endPoint", endPoint)
spark.sparkContext.hadoopConfiguration.set("fs.jfs.impl", "org.apache.hadoop.fs.jfs.JFSFileSystem")
spark.read.textFile(inputPath).show()
}
}
我看到其他同事配置Key的时候,有使用另外方式的:
spark.conf.set("fs.jfs.accessKey", accessKey)
spark.conf.set("fs.jfs.secretKey", secretKey)
spark.conf.set("fs.jfs.endPoint", endPoint)
3、完成