You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 15:23:19