如何使用PySpark读取Delta Sharing API返回的短生命周期Parquet文件
从Delta Sharing API获取短生命周期Parquet URL并通过PySpark读取
1. 调用Delta Sharing API获取响应
先用Python的requests库发起请求,拿到包含Parquet文件信息的JSON响应:
import requests # 替换为你的API地址、认证信息和查询参数 delta_api = "https://your-delta-sharing-server/api/v1/shares/your-share/schemas/your-schema/tables/your-table/query" auth_headers = { "Authorization": "Bearer your-valid-token", "Content-Type": "application/json" } query_payload = {"predicateHints": [], "limitHint": 5000} resp = requests.post(delta_api, json=query_payload, headers=auth_headers) resp_json = resp.json()
2. 提取Parquet文件URL
从返回的JSON结构中,files数组下的url字段就是目标短生命周期Parquet地址:
# 提取所有有效Parquet URL parquet_links = [item["url"] for item in resp_json.get("files", []) if "url" in item]
3. PySpark读取Parquet文件
初始化SparkSession后,直接用read.parquet()读取这些URL,支持单个或多个文件并行加载:
from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("DeltaSharingParquetReader") \ .getOrCreate() # 读取Parquet文件到DataFrame spark_df = spark.read.parquet(*parquet_links) # 验证读取结果 spark_df.printSchema() spark_df.show(5)
关键注意点
- 确保API返回的Parquet URL已经包含必要的签名和过期参数,PySpark会自动处理带签名的HTTP请求,无需额外配置。
- 若返回大量Parquet文件,直接传入URL列表即可,PySpark的并行加载效率远高于Pandas单线程读取。
- 遇到权限或格式问题时,优先检查URL有效性,默认Spark Parquet读取配置适配Delta生成的标准Parquet文件。
内容的提问来源于stack exchange,提问作者Parul Paul
相关产品推荐
相关产品推荐

