Pyspark 分析pyarrow.parquet.ParquetDataset对象的架构

Pyspark 分析pyarrow.parquet.ParquetDataset对象的架构,pyspark,pyarrow,Pyspark,Pyarrow,我使用pyarrow从s3读取拼花地板数据,我希望能够解析模式并将其转换为适合在Spark之外运行mLeap序列化模型的格式 这需要解析模式 如果我有一个Pyspark数据帧,我可以这样做: test_df = spark.read.parquet(test_data_path) schema = [ { "name" : field.simpleString().split(":")[0], "type" : field.simpleString().split(":")[1] } for f

我使用pyarrow从s3读取拼花地板数据,我希望能够解析模式并将其转换为适合在Spark之外运行mLeap序列化模型的格式

这需要解析模式

如果我有一个Pyspark数据帧,我可以这样做:

test_df = spark.read.parquet(test_data_path)
schema = [ { "name" : field.simpleString().split(":")[0], "type" : field.simpleString().split(":")[1] }
for field in test_df.schema ]
如果改用pyarrow读取数据,如何实现同样的效果? 此外,对于Spark dataframe,我可以通过执行以下操作,以适当的格式获得用于模型评估的行:

rows = [[field for field in row] for row in test_df.collect()]
如何使用pyarrow实现类似的功能


提前感谢您的帮助。

如果您想获得架构,可以使用pyarrow.parquet执行以下操作:

import pyarrow.parquet as pq
dataset = pq.ParquetDataset(<path to file>).read_pandas()
schema = dataset.schema
schemaDict = {x:y for (x,y) in zip(schema.names, schema.types)}
导入pyarrow.parquet作为pq
数据集=pq.ParquetDataset().read_())
schema=dataset.schema
schemaDict={x:y表示zip(schema.names,schema.types)中的(x,y)}
这将为您提供数据类型的列名字典