Dask 数据帧从 http 读取镶木地板格式失败

Dask dataframe read parquet format fails from http

我已经处理这个问题一个星期了。 我使用命令

from dask import dataframe as ddf
ddf.read_parquet("http://IP:port/webhdfs/v1/user/...")

我得到了无效的镶木地板魔法。 但是 ddf.read_parquet 可以与 "webhdfs://"

我希望 ddf.read_parquet 适用于 http,因为我想在没有 hdfs 访问权限的工作人员的 dask-ssh 集群中使用它。

虽然评论已经部分回答了这个问题,但我想我会添加一些信息作为答案

  • HTTP(S) 被 dask(实际上 fsspec)支持作为后端文件系统;但是要在文件中进行分区,您需要获取该文件的大小,并且要解析 glob,您需要能够获取链接列表,这两者都不一定由任何给定服务器提供
  • webHDFS(或者实际上是 httpFS)不像 HTTP 下载那样工作,您需要使用特定的 API 打开文件并在集群成员上获取最终的 URL 到该文件;所以这两种方法不能互换
  • webHDFS 通常用于 hadoop 集群外部;在集群中,您可能会使用纯 HDFS ("hdfs://")。但是,使用 kerberos 保护的 webHDFS 可能会很棘手,具体取决于安全设置的方​​式。