PySpark读取Apache Arrow(.arrow后缀)文件方法求助
在PySpark中读取Apache Arrow格式文件(.arrow)的实现方法
方法一:通过pandas读取后转换为Spark DataFrame
适合中小规模数据,利用pandas对Arrow文件的原生支持:
- 安装依赖
确保环境中已安装pyarrow和pandas,未安装则执行:
pip install pyarrow pandas
- 读取Arrow文件到pandas DataFrame
import pandas as pd # 读取单个.arrow文件 pd_df = pd.read_feather("path/to/your/file.arrow") # 批量读取可遍历文件路径后合并 # pd_df = pd.concat([pd.read_feather(f) for f in ["file1.arrow", "file2.arrow"]])
- 转换为Spark DataFrame
from pyspark.sql import SparkSession spark = SparkSession.builder.appName("ArrowRead").getOrCreate() spark_df = spark.createDataFrame(pd_df)
方法二:Spark 3.2+直接读取Arrow数据源
适合大规模分布式场景,利用Spark原生Arrow数据源支持:
from pyspark.sql import SparkSession spark = SparkSession.builder.appName("ArrowDirectRead").getOrCreate() # 读取单个文件 spark_df = spark.read.format("arrow").load("path/to/your/file.arrow") # 读取目录下所有.arrow文件 spark_df = spark.read.format("arrow").load("path/to/arrow_dir/*.arrow")
关键注意事项
- 版本要求:方法二必须使用Spark 3.2及以上版本,低版本请改用方法一。
- 文件格式:确保你的.arrow文件是Arrow IPC或Feather格式(两者均属于Apache Arrow规范,上述方法均支持)。
- 集群环境:如果在分布式集群运行,需保证所有节点都安装了
pyarrow,可通过集群初始化脚本或指定统一Python环境实现。
内容的提问来源于stack exchange,提问作者Johnas
相关产品推荐
相关产品推荐

