在 Python 中获取镶木地板文件的模式

新手上路,请多包涵

是否有任何 python 库可用于获取镶木地板文件的模式?

目前我们正在将 parquet 文件加载到 Spark 中的数据框中,并从数据框中获取模式以显示在应用程序的某些 UI 中。但是初始化 spark-context 和加载数据框并从数据框中获取模式是一项耗时的活动。因此,寻找一种替代方法来获取架构。

原文由 Saran 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 324
1 个回答

此函数返回表示镶木地板文件的本地 URI 的架构。该模式作为可用的 Pandas 数据框返回。该函数不读取整个文件,只读取模式。

 import pandas as pd
import pyarrow.parquet

def read_parquet_schema_df(uri: str) -> pd.DataFrame:
    """Return a Pandas dataframe corresponding to the schema of a local URI of a parquet file.

    The returned dataframe has the columns: column, pa_dtype
    """
    # Ref: https://stackoverflow.com/a/64288036/
    schema = pyarrow.parquet.read_schema(uri, memory_map=True)
    schema = pd.DataFrame(({"column": name, "pa_dtype": str(pa_dtype)} for name, pa_dtype in zip(schema.names, schema.types)))
    schema = schema.reindex(columns=["column", "pa_dtype"], fill_value=pd.NA)  # Ensures columns in case the parquet file has an empty dataframe.
    return schema

它已使用以下版本的所用第三方软件包进行了测试:

 $ pip list | egrep 'pandas|pyarrow'
pandas             1.1.3
pyarrow            1.0.1

原文由 Asclepius 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题