9

我正在尝试在 FreeBSD 机器上安装镶木地板工具。

我克隆了这个仓库:git clone https://github.com/apache/parquet-mr

然后我做了cd parquet-mr/parquet-tools

然后我做了`mvn clean package -Plocal

如此处指定:https ://github.com/apache/parquet-mr/tree/master/parquet-tools

这就是我得到的:

在此处输入图像描述

为什么这里会出现这个依赖错误?我该如何解决?

4

5 回答 5

13

我知道这个问题指定了 FreeBSD,但如果你在 mac 上,你可以这样做

brew install parquet-tools

于 2019-06-07T00:47:14.317 回答
12

在 Ubuntu 20 上,我通过pip安装:

python3 -m pip install parquet-tools

没有在 FreeBSD 上尝试过,但我想它也可以。有关在 FreeBSD 上使用 pip 的警告,请参阅相关答案

您可以使用以下命令查看文件:

parquet-tools show filename.parquet
于 2021-01-18T09:12:20.190 回答
4

parquet-tools只是一个模块parquet-mr。这取决于其他一些模块。

当您从对应于发布的源版本构建时,这些其他模块将对 Maven 可用,因为发布工件是作为发布过程的一部分发布的。

但是,从快照版本构建时,您必须自己使这些依赖项可用。有两种方法可以做到这一点:

选项1:构建并安装父目录的所有模块:

git clone https://github.com/apache/parquet-mr
cd parquet-mr
mvn install -Plocal

这会将快照工件放在您的本地~/.m2目录中。随后,您可以parquet-tools像最初尝试的那样(重新)构建,因为现在快照工件已经可以从~/.m2.

选项 2:parquet-mr从父目录构建模块,同时要求 Maven 构建所需的模块:

git clone https://github.com/apache/parquet-mr
cd parquet-mr
mvn package -pl parquet-tools -am -Plocal

选项 1 将比选项 2 构建更多项目,因此如果您只需要parquet-tools,则最好使用后者。请注意,可能两者都需要安装节俭编译器。

于 2018-11-15T12:44:07.557 回答
2

Parquet tools - 可用于读取 parquet 文件的实用程序。Yuu 可以从 Github 克隆它并运行一些 maven 命令。

1. git clone https://github.com/Parquet/parquet-mr.git 
2. cd parquet-mr/parquet-tools/ 
3. mvn clean package -Plocal 


或者您可以下载稳定版本并从本地构建。

  1. 下载稳定的 Parquet 版本。

    https://github.com/apache/parquet-mr/archive/apache-parquet-1.8.2.tar.gz


2. Maven本地安装。

 D:\parquet>cd parquet-tools && mvn clean package -Plocal

在此处输入图像描述


3.测试它(在目标目录下粘贴一个parquet文件):

 D:\parquet\parquet-tools\target>java -jar parquet-tools-1.8.2.jar schema out.parquet

(其中 out.parquet 是我在目标目录下的 parquet 文件)

在此处输入图像描述

// 读取 parquet 文件

D:\parquet\parquet-tools\target>java -jar parquet-tools-1.6.0.jar cat out.parquet

// 读取 parquet 文件中的几行

D:\parquet\parquet-tools\target>java -jar parquet-tools-1.6.0.jar head -n5 out.parquet 
于 2020-02-28T10:40:22.530 回答
0

一些答案的 jar 下载链接已断开,但您可以从 maven Central获取

但是......这个 jar 和其他类似的 jar 是为了“提供”hadoop 依赖项而构建的,如果您从源代码构建,您将获得该默认值。因此,您需要在构建时设置 -Dhadoop.scope=compile,否则结果仅在使用“hadoop ...”命令在 hadoop 节点上运行时才有效。

更糟糕的是,这个工具显然禁用了 System.out 和 System.err,因此导致 main() 失败的异常永远不会被打印出来,你会想知道发生了什么。

我还发现 maven-license-plugin 的默认设置导致它在出现意外的文件时导致构建失败(例如,如果您使用 netbeans,则为 nbactions.xml)。

于 2020-10-30T21:01:01.563 回答