get structtype格式的parquet文件模式

dhxwm5r4  于 2021-07-12  发布在  Spark
关注(0)|答案(1)|浏览(428)

我试图读取Parquet文件以保存模式,然后在读取csv文件时使用此模式将其分配给dataframe。
文件 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:架构应为structtype或string
我尝试了一些选择,比如 fee_schema.to_string(show_schema_metadata = True) 但是它不起作用。
谢谢你的时间!

9rygscc1

9rygscc11#

正如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)

相关问题