以 StructType 格式获取 Parquet 文件的架构
get schema for Parquet file in StructType format
我正在尝试读取 parquet 文件以保存架构,然后在读取 csv 文件时使用此架构将其分配给数据框。
文件fee.parquet
和loan__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)
我正在尝试读取 parquet 文件以保存架构,然后在读取 csv 文件时使用此架构将其分配给数据框。
文件fee.parquet
和loan__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)