下载huggingface数据集到本地并读取.arrow文件遇到的问题

文章目录

    • [1. 524MB中文维基百科语料(需要下载的数据集)](#1. 524MB中文维基百科语料(需要下载的数据集))
    • [2. 下载 hugging face 网站上的数据集](#2. 下载 hugging face 网站上的数据集)
    • [3. 读取 .arrow 文件报错代码](#3. 读取 .arrow 文件报错代码)
    • [4. 纠正后代码](#4. 纠正后代码)

1. 524MB中文维基百科语料(需要下载的数据集)

2. 下载 hugging face 网站上的数据集

要将Hugging Face网站上的数据集下载到本地,可以使用Hugging Face提供的Python库 datasets。以下是下载数据集的基本步骤:

  1. 确保你已经安装了 datasets 库。你可以使用以下命令安装它:

    pip install datasets

  2. 导入 datasets 库:

python 复制代码
from datasets import load_dataset
  1. 使用 load_dataset 函数加载你感兴趣的数据集。例如,如果你想下载上面网页的数据集,你可以这样做:
python 复制代码
dataset = load_dataset('pleisto/wikipedia-cn-20230720-filtered')
  1. 下载完成后,你可以指定一个本地目录来保存数据集文件。可以使用以下代码来指定保存路径:
python 复制代码
dataset.save_to_disk(r'E:\DL\CSDN-blog\pyqt5_ui')

请将 括号中的字符串替换为你想要保存数据集文件的实际目录。这样,你就可以将Hugging Face网站上的数据集下载到本地指定的目录中了。

请注意,某些数据集可能需要进行身份验证或同意使用条款才能下载。确保你遵守数据集提供者的规定和许可要求。

  1. 下载后的结果

3. 读取 .arrow 文件报错代码

python 复制代码
import pyarrow as pa

# 读取.arrow文件
table = pa.ipc.open_file(r'E:\DL\CSDN-blog\pyqt5_ui\train\data-00000-of-00002.arrow').read_pandas()
print('打印数据:\n', table)

报错输出

python 复制代码
C:\ProgramData\Anaconda3\python.exe E:/DL/CSDN-blog/pyqt5_ui/gen_data.py
Traceback (most recent call last):
  File "E:/DL/CSDN-blog/pyqt5_ui/gen_data.py", line 8, in <module>
    table = pa.ipc.open_file(r'E:\DL\CSDN-blog\pyqt5_ui\train\data-00000-of-00002.arrow').read_pandas()
  File "C:\ProgramData\Anaconda3\lib\site-packages\pyarrow\ipc.py", line 236, in open_file
    options=options, memory_pool=memory_pool)
  File "C:\ProgramData\Anaconda3\lib\site-packages\pyarrow\ipc.py", line 111, in __init__
    options=options, memory_pool=memory_pool)
  File "pyarrow\ipc.pxi", line 942, in pyarrow.lib._RecordBatchFileReader._open
  File "pyarrow\error.pxi", line 144, in pyarrow.lib.pyarrow_internal_check_status
  File "pyarrow\error.pxi", line 100, in pyarrow.lib.check_status
pyarrow.lib.ArrowInvalid: Not an Arrow file

4. 纠正后代码

参考链接: Python : Arrow、Pyarrow库、以及与Julia互读

python 复制代码
import pyarrow as pa
import json
# from datasets import load_dataset
# dataset = load_dataset('pleisto/wikipedia-cn-20230720-filtered')
# dataset.save_to_disk(r'E:\DL\CSDN-blog\pyqt5_ui')

# 读取.arrow文件
# table = pa.ipc.open_file(r'E:\DL\CSDN-blog\pyqt5_ui\train\data-00000-of-00002.arrow').read_pandas()
# 可以读出julia对应的test.arrow文件
def read_arrow_to_df_julia_ok(path):
    with open(path,"rb") as f:
        r = pa.ipc.RecordBatchStreamReader(f)
        df = r.read_pandas()
        return df
table = read_arrow_to_df_julia_ok(r'E:\DL\CSDN-blog\pyqt5_ui\train\data-00000-of-00002.arrow')
# 打印数据
print('打印数据:\n', table)

正确结果输出

python 复制代码
C:\ProgramData\Anaconda3\python.exe E:/DL/CSDN-blog/pyqt5_ui/gen_data.py
打印数据:
                   source                                         completion
0       wikipedia.zh2307  昭通机场(ZPZT)是位于中国云南昭通的民用机场,始建于1935年,1960年3月开通往返航...
1       wikipedia.zh2307  我的英雄学院:英雄新世纪\n《我的英雄学院剧场版:英雄新世纪》(仆のヒーローアカデミア TH...
2       wikipedia.zh2307  黄大仙文化公园(Wong Tai Sin Culture Park)是香港一个公园,位于九龙...
3       wikipedia.zh2307  佐洛奇夫(Zolochiv),或按俄语译为佐洛乔夫(Золочев),是乌克兰西部利沃夫州佐...
4       wikipedia.zh2307  陈准,字道基,颍川郡许昌(今河南许昌)人。西晋官员。官至太尉。出身颍川陈氏,青州刺史陈佐之子...
...                  ...                                                ...
127269  wikipedia.zh2307  五个为什么(英文:5 Whys),又称为"五个为何"、"五问"或"五问法",是一种提出问题的...
127270  wikipedia.zh2307  热凝胶多糖,又名可得然胶、卡德兰胶,是一种β-1,3-葡聚糖,是由葡萄糖组合而成的高分子聚合...
127271  wikipedia.zh2307  尤宁县 (阿肯色州)\n尤宁县(Union County)是美国阿肯色州南部的一个县,南邻路...
127272  wikipedia.zh2307  超粒方,本名邱奕淳,台湾百万订阅YouTuber,国立交通大学(今国立阳明交通大学)外文系肄...
127273  wikipedia.zh2307  《切尔诺贝利·禁区》是由"SineLab Production"(第1季)和RatPack ...

[127274 rows x 2 columns]

Process finished with exit code 0
相关推荐
2501_94493473几秒前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
helloworldandy7 分钟前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
黎雁·泠崖38 分钟前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
2301_763472461 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
肖永威2 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos
TechWJ2 小时前
PyPTO编程范式深度解读:让NPU开发像写Python一样简单
开发语言·python·cann·pypto
枷锁—sha2 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
abluckyboy2 小时前
Java 实现求 n 的 n^n 次方的最后一位数字
java·python·算法
lly2024062 小时前
C++ 文件和流
开发语言
m0_706653232 小时前
分布式系统安全通信
开发语言·c++·算法