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

Sur*_*raj 2 apache-spark pyspark databricks pyarrow azure-databricks

我正在尝试读取镶木地板文件来保存架构,然后在读取 csv 文件时使用此架构将其分配给数据帧。

fee.parquet该文件loan__fee.csv具有相同的内容,但文件格式不同。

下面是我的代码 - 我收到一个错误,架构应该是“StructType”。如何将从镶木地板文件读取的模式转换为 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)
Run Code Online (Sandbox Code Playgroud)

它给出错误:

类型错误:架构应该是 StructType 或字符串

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

谢谢你的时间!

Ale*_*Ott 5

正如 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)
Run Code Online (Sandbox Code Playgroud)