pyarrow.parquet.ParquetDataset对象的解析模式

时间:2018-12-20 12:35:32

标签: 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 field in test_df.schema ]

如果我改用pyarrow读取数据,如何实现相同的目的? 另外,对于Spark数据框,我可以通过执行以下操作以合适的格式获取行以进行模型评估:

rows = [[field for field in row] for row in test_df.collect()]

如何使用pyarrow实现类似的目的?

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果要获取模式,可以使用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)}

这将为您提供有关数据类型的列名的字典。