以 StructType 格式获取 Parquet 文件的架构

get schema for Parquet file in StructType format

我正在尝试读取 parquet 文件以保存架构,然后在读取 csv 文件时使用此架构将其分配给数据框。

文件fee.parquetloan__fee.csv内容相同,文件格式不同。

下面是我的代码 - 我得到一个错误,模式应该是 'StructType'。如何将从 parquet 文件读取的架构转换为 StructType

from pyarrow.parquet import ParquetFile
import pyarrow.parquet
fee_schema = pyarrow.parquet.read_schema("/dbfs/FileStore/fee.parquet", memory_map=True)

df_mod = spark.read.csv('/FileStore/loan__fee.csv', header="true", schema=fee_schema)

它给出错误:

TypeError: schema should be StructType or string

我尝试了几个选项,例如 fee_schema.to_string(show_schema_metadata = True) 但它不起作用给出 ParseError。

感谢您的宝贵时间!

根据 mck 的建议,您可以使用 spark.read.parquet 来获取架构 - 此命令只是从文件中获取元数据,而不是完全读取它。所以你会有这样的东西:

src_df = spark.read.parquet("/FileStore/fee.parquet")
df_mod = spark.read.csv('/FileStore/loan__fee.csv', header="true", 
    schema=src_df.schema)