本文介绍Spark如何读取OSS中的数据。
背景信息
当前E-MapReduce:
- 支持MetaService服务。
- 支持通过免AccessKey访问OSS数据源。
- 支持通过显式写AccessKey和Endpoint方式访问OSS数据源。
说明 OSS Endpoint需使用内网域名,具体请参见OSS Endpoint。
Spark接入OSS示例
本示例展示,Spark如何以免AccessKey方式读取OSS中数据,并将处理完的数据写回到OSS中。
val conf = new SparkConf().setAppName("Test OSS")
val sc = new SparkContext(conf)
val pathIn = "oss://bucket/path/to/read"
val inputData = sc.textFile(pathIn)
val cnt = inputData.count
println(s"count: $cnt")
val outputPath = "oss://bucket/path/to/write"
val outpuData = inputData.map(e => s"$e has been processed.")
outpuData.saveAsTextFile(outputPath)
示例代码请参见Spark对接OSS。
PySpark接入OSS示例
本示例展示,PySpark如何以免AccessKey方式读取OSS中数据,并将处理完的数据写回到OSS中。
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("Python Spark SQL OSS example").getOrCreate()
pathIn = "oss://bucket/path/to/read"
df = spark.read.text(pathIn)
cnt = df.count()
print(cnt)
outputPath = "oss://bucket/path/to/write"
df.write.format("parquet").mode('overwrite').save(outputPath)
在文档使用中是否遇到以下问题
更多建议
匿名提交