从命令行检查Parquet

122

我该如何在命令行中检查Parquet文件的内容?

目前我所看到的唯一选项是:

$ hadoop fs -get my-path local-file
$ parquet-tools head local-file | less

我希望避免创建local-file并且以JSON格式查看文件内容,而不是parquet-tools打印的无类型文本。有简单的方法吗?

13个回答

0

我宁愿使用hdfs NFS网关+autofs来方便地进行hdfs文件调查。

我的设置:

  • 在namenode上运行HDFS NFS网关服务。
  • 捆绑了自动安装服务,并对auto.master进行以下配置更改。
/net    -hosts nobind

我可以轻松运行以下命令来查看任何HDFS文件

head /net/<namenodeIP>/path/to/hdfs/file
parquet-tools head /net/<namenodeIP>/path/to/hdfs/par-file
rsync -rv /local/directory/ /net/<namenodeIP>/path/to/hdfs/parentdir/

别再管hadoop* hdfs*命令啦 ;)


0
如果有人想要从命令行检查Parquet文件的简便方法,我写了一个名为clidb的工具来实现这一点。
它不会像OP所希望的那样生成json,而是将Parquet数据显示为表格,并允许运行SQL片段。它应该适用于:
pip install "clidb[extras]"
clidb path/with/data

0
在Windows 10 x64上,我刚刚从源代码构建了parquet-reader

Windows 10 + WSL + GCC

安装了Ubuntu LTS 18.04的WSL。将gcc升级到v9.2.1并将CMake升级到最新版本。额外奖励:安装Windows终端。

git checkout https://github.com/apache/arrow
cd arrow
cd cpp
mkdir buildgcc
cd buildgcc
cmake .. -DPARQUET_BUILD_EXECUTABLES=ON -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON -DARROW_WITH_BROTLI=ON -DPARQUET_BUILD_EXAMPLES=ON -DARROW_CSV=ON
make -j 20
cd release
./parquet-reader
Usage: parquet-reader [--only-metadata] [--no-memory-map] [--json] [--dump] [--print-key-value-metadata] [--columns=...] <file>

如果在构建时遇到问题,可能需要使用 vcpkg 搜索缺失的库。

还可以看一下另一个提供更简单解决方案的项目:https://github.com/chhantyal/parquet-cli

源自链接:如何在不缓冲的情况下使用 parquet-cpp 写入流式/行定向数据?

最初尝试使用 brew install parquet-tools,但在我的 WSL 安装下似乎无法正常工作。

Windows 10 + MSVC

与上面相同。使用 CMake 生成 Visual Studio 2019 项目,然后进行构建。

git checkout https://github.com/apache/arrow
cd arrow
cd cpp
mkdir buildmsvc
cd buildmsvc
cmake .. -DPARQUET_BUILD_EXECUTABLES=ON -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON -DARROW_WITH_BROTLI=ON -DPARQUET_BUILD_EXAMPLES=ON -DARROW_CSV=ON
# Then open the generated .sln file in MSVC and build. Everything should build perfectly.

故障排除:

如果有任何缺失的库,我会将其指向我的vcpkg安装。我运行了vcpkg integrate install,然后将其复制到CMake行的末尾:

-DCMAKE_TOOLCHAIN_FILE=[...path...]/vcpkg/scripts/buildsystems

如果它抱怨缺少任何库,我会使用命令像 vcpkg install boost:x64 安装这些库,例如 boost

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接