Dask数据帧从http读取parquet格式失败。

问题描述 投票:0回答:1

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

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

我得到了无效的parquet魔法,但是df.read_parquet在 "webhdfs:/"的情况下是可以的。

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

pandas http dask parquet fastparquet
1个回答
0
投票

虽然评论中已经回答了这个问题的部分内容,但我想我还是要补充一些信息作为答案。

  • dask支持HTTP(S)(其实是 fsspec)作为后端文件系统;但如果要获得文件中的分区,你需要获得该文件的大小,如果要解析globs,你需要能够获得一个链接列表,而这两者都不一定由任何给定的服务器提供
  • webHDFS(或者实际上是httpFS)的工作方式不像HTTP下载,你需要使用特定的API来打开一个文件,并在集群成员上获取该文件的最终URL;所以这两种方法不能互换。
  • webHDFS通常用于 外面 的hadoop集群;在集群内,你可能会使用普通的HDFS ("hdfs://"). 然而,kerberos安全的webHDFS可能会很棘手,这取决于安全设置的方式。
© www.soinside.com 2019 - 2024. All rights reserved.