sail s3 集成简单测试
sail 是基于object-store这个包实现对于对象存储的支持的,以下是一个简单的测试
启动配置
- s3 minio
services:
minio:
image: minio/minio
ports:
- "9000:9000"
- "19001:19001"
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
MINIO_API_SELECT_PARQUET: on
command: server --console-address :19001 --quiet /data
- 环境变量
env \
AWS_ACCESS_KEY_ID="minio" \
AWS_SECRET_ACCESS_KEY="minio123" \
AWS_ENDPOINT="http://localhost:9000" \
AWS_VIRTUAL_HOSTED_STYLE_REQUEST="false" \
AWS_ALLOW_HTTP="true" \
RUST_LOG=debug sail spark server
读取以及写入
- s3.py
from pyspark.sql import SparkSession
spark = SparkSession.builder.remote(f"sc://localhost:50051").getOrCreate()
df = spark.read.parquet("s3://demo/apps/")
df.createOrReplaceTempView("users")
spark.sql("SELECT count(*) from users").show()
df.write.mode("overwrite").parquet("s3://demo/appsv2/datasv2/processed_usersv2.parquet")
- 效果

说明
目前集成上感觉并不是很方便,需要基于环境变量(实际上按照spark 以及代码中的处理,是支持基于配置文件的启动模式的)同时在测试的时候发现写入不是很稳定,偶尔会有不成功的问题,同时相比本地盘差异还是不小的,如果能支持cache 处理应该会好不少
参考资料
https://docs.lakesail.com/sail/latest/development/recipes/object-store.html#testing-the-object-store
浙公网安备 33010602011771号