0

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

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

我得到了无效的镶木地板魔术。但是 ddf.read_parquet 可以使用“webhdfs://”

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

4

1 回答 1

0

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

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