【问题标题】:Python Pandas to convert CSV to Parquet using FastparquetPython Pandas 使用 Fastparquet 将 CSV 转换为 Parquet
【发布时间】:2019-07-05 15:04:22
【问题描述】:

我在 PyCharm venv 中使用 Python 3.6 解释器,并尝试将 CSV 转换为 Parquet。

import pandas as pd    
df = pd.read_csv('/parquet/drivers.csv')
df.to_parquet('output.parquet')

错误 1 ImportError:无法找到可用的引擎;尝试使用:'pyarrow'、'fastparquet'。 parquet 支持需要 pyarrow 或 fastparquet

解决方案-1 安装了 fastparquet 0.2.1

错误 2 文件“/Users/python parquet/venv/lib/python3.6/site-packages/fastparquet/compression.py”,第 131 行,在 compress_data (算法,排序(压缩))) RuntimeError: 压缩 'snappy' 不可用。选项:['GZIP', '未压缩']

我安装了 python-snappy 0.5.3 但仍然出现同样的错误?我需要安装任何其他库吗?

如果我使用 PyArrow 0.12.0 引擎,我不会遇到此问题。

【问题讨论】:

    标签: python pandas fastparquet


    【解决方案1】:

    在 fastparquet 中,快速压缩是一个可选功能。

    要快速检查从 csv 到 parquet 的转换,您可以执行以下脚本(仅需要 pandas 和 fastparquet):

    import pandas as pd
    from fastparquet import write, ParquetFile
    df = pd.DataFrame({"col1": [1,2,3,4], "col2": ["a","b","c","d"]})
    # df.head() # Test your initial value
    df.to_csv("/tmp/test_csv", index=False)
    df_csv = pd.read_csv("/tmp/test_csv")
    df_csv.head() # Test your intermediate value
    df_csv.to_parquet("/tmp/test_parquet", compression="GZIP")
    df_parquet = ParquetFile("/tmp/test_parquet").to_pandas()
    df_parquet.head() # Test your final value
    

    但是,如果您需要使用 snappy 压缩进行写入或读取,您可以关注此answer about installing snappy library on ubuntu

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 2018-12-15
      • 2019-07-27
      • 2017-09-12
      • 2016-10-03
      • 2019-03-15
      • 2022-11-19
      • 2021-12-26
      相关资源
      最近更新 更多