将xlsx文件转换为parquet格式。

4

是否有可能将xlsx Excel文件转换为Parquet而不转换为CSV?事实上,我有许多包含多个工作表的Excel文件,我不想将每个工作表转换为CSV然后再转换为Parquet,所以我想知道是否有一种直接将Excel转换为Parquet的方法?或者,是否有使用nifi的方法?我想使用Python脚本来完成这个任务。

def csv_from_excel():

wb = xlrd.open_workbook('your_workbook.xls')
sh = wb.sheet_names()
for i in sh:
    sh = wb.sheet_by_name(i)
    your_csv_file = open('your_csv_file.csv', 'wb')
    wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)

    for rownum in xrange(sh.nrows):
        wr.writerow(sh.row_values(rownum))

    your_csv_file.close()
`

非常相关:https://dev59.com/rVwY5IYBdhLWcg3wJlAq - John Y
2个回答

1

从Nifi的角度来看,这里有两个有趣的问题:

  1. Nifi能否获取这个Excel文件?

如果利用XLSX processor,这应该不太困难,但如果您的情况稍微复杂一些,this elaborate HCC article 可能会有所帮助。

  1. Nifi能否写入Parquet格式?

这部分很容易,使用PutParquet processor,Nifi可以直接写入Parquet格式。


0
运行以下代码并安装所有必需的库。

import os
import fnmatch
import pandas as pd
import pyarrow as pa
import pyarrow.parquet as pq
import openpyxl

path = './'
pattern = 'mydataset.xlsx'
all_files = os.listdir(path)

for name in all_files:
    if fnmatch.fnmatch(name, pattern):
        df = pd.read_excel(name)
        table = pa.Table.from_pandas(df)
        pq.write_table(table, name + '.parquet')


我成功地使用了这个。 - Damar Jati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接