分析 Hugging Face 数据
Hugging Face 是一个广受欢迎的中心化平台,用户可以在上面存储、分享并协作构建机器学习模型、数据集以及其他资源。
Hugging Face Dataset 根据存储库的类型,可能包含 CSV、Parquet、JSONL 等数据文件。
通过 HTTP Table Value Function 功能,Doris 可以直接通过 SQL 访问 Hugging Face 数据集上的数据。
该功能自 4.0.3 版本支持
使用说明
Doris 通过 HTTP 协议访问 Hugging Face Dataset 中的数据。
支持自动类型推断。支持 CREATE TABLE AS SELECT 以及 INSERT INTO ... SELECT 等方式处理数据。
支持 CSV、Json、Parquet、ORC 等文件类型,相关参数和 File Table Valued Fuction 相同。
基础示例
-
访问
fka/awesome-chatgpt-prompts仓库下的 csv 数据SELECT COUNT(*) FROM
HTTP(
"uri" = "hf://datasets/fka/awesome-chatgpt-prompts/blob/main/prompts.csv",
"format" = "csv"
);对应数据文件:https://huggingface.co/datasets/fka/awesome-chatgpt-prompts/blob/main/prompts.csv
-
创建表,访问
stanfordnlp/imdb仓库下的 json 数据,并指定script分支。然后将数据导入到表中。CREATE TABLE hf_table AS
SELECT * FROM
HTTP(
"uri" = "hf://datasets/stanfordnlp/imdb@script/dataset_infos.json",
"format" = "json"
);对应数据文件:https://huggingface.co/datasets/stanfordnlp/imdb/blob/script/dataset_infos.json
-
访问
stanfordnlp/imdb仓库下的 parquet 文件,并指定main分支。同时,通过通配符匹配多路径。SELECT * FROM
HTTP(
"uri" = "hf://datasets/stanfordnlp/imdb@main/*/*.parquet",
"format" = "parquet"
) ORDER BY text LIMIT 1;对应数据文件:https://huggingface.co/datasets/stanfordnlp/imdb/blob/main/plain_text/test-00000-of-00001.parquet
-
访问
stanfordnlp/imdb仓库下的 parquet 文件,并指定main分支。同时,通过通配符匹配多层递归文件。然后插入到指定表INSERT INTO hf_tbale
SELECT * FROM
HTTP(
"uri" = "hf://datasets/stanfordnlp/imdb@main/**/test-00000-of-0000[1].parquet",
"format" = "parquet"
) ORDER BY text LIMIT 1;对应数据文件:https://huggingface.co/datasets/stanfordnlp/imdb/blob/main/plain_text/test-00000-of-00001.parquet
-
分析需授权访问的文件
从 Hugging Face 账号中获取 Token(
hf_开头),然后添加到http.header.Authorization属性中。SELECT * FROM
HTTP(
"uri" = "hf://datasets/gaia-benchmark/GAIA/blob/main/2023/validation/metadata.level1.parquet",
"format" = "parquet",
"http.header.Authorization" = "Bearer hf_MWYzOJJoZEymb..."
) LIMIT 1\G