gpt4 book ai didi

java - 如何将 csv 文件转换为 Parquet

转载 作者:太空狗 更新时间:2023-10-29 22:31:43 25 4
gpt4 key购买 nike

我是 BigData 的新手。我需要将 csv/txt 文件转换为 Parquet 格式。我搜索了很多但找不到任何直接的方法。有什么办法可以实现吗?

最佳答案

我已经发布了an answer关于如何使用 Apache Drill 执行此操作。但是,如果您熟悉 Python,现在可以使用 Pandas 来完成此操作。和 PyArrow !

安装依赖

使用pip:

pip install pandas pyarrow

或使用 conda:

conda install pandas pyarrow -c conda-forge

将 CSV 分 block 转换为 Parquet

# csv_to_parquet.py

import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq

csv_file = '/path/to/my.tsv'
parquet_file = '/path/to/my.parquet'
chunksize = 100_000

csv_stream = pd.read_csv(csv_file, sep='\t', chunksize=chunksize, low_memory=False)

for i, chunk in enumerate(csv_stream):
print("Chunk", i)
if i == 0:
# Guess the schema of the CSV file from the first chunk
parquet_schema = pa.Table.from_pandas(df=chunk).schema
# Open a Parquet file for writing
parquet_writer = pq.ParquetWriter(parquet_file, parquet_schema, compression='snappy')
# Write CSV chunk to the parquet file
table = pa.Table.from_pandas(chunk, schema=parquet_schema)
parquet_writer.write_table(table)

parquet_writer.close()

我没有针对 Apache Drill 版本对这段代码进行基准测试,但根据我的经验,它非常快,每秒转换数万行(当然这取决于 CSV 文件!)。


编辑:

我们现在可以使用 pyarrow.csv.read_csv 将 CSV 文件直接读取到 PyArrow 表中.这可能比使用 Pandas CSV 阅读器更快,尽管它可能不太灵活。

关于java - 如何将 csv 文件转换为 Parquet ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26124417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com