【问题标题】:Installing parquet-tools安装镶木地板工具
【发布时间】:2019-04-17 18:44:36
【问题描述】:

我正在尝试在 FreeBSD 机器上安装 parquet 工具。

我克隆了这个 repo: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

这是我得到的:

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

【问题讨论】:

  • 这个错误似乎是不言自明的;您要查找的工件不在 Jitpack 的存储库中。它在 Maven 中心吗?
  • 啊,原来我只需要签出最新的稳定版本标签,而不是 master 分支。
  • Do not post images of code or errors! 图片和屏幕截图可以很好地添加到帖子中,但请确保帖子在没有它们的情况下仍然清晰有用。如果您发布代码或错误消息的图像,请确保您还复制并粘贴或直接在帖子中输入实际代码/消息。
  • 不要克隆,而是下载它并按照其他必需的步骤操作。它以这种方式对我有用。我从这个链接下载了它。 github.com/apache/parquet-mr/archive/… 干杯!

标签: java maven freebsd parquet parquet-mr


【解决方案1】:

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

brew install parquet-tools

【讨论】:

    【解决方案2】:

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

    python3 -m pip install parquet-tools
    

    尚未在 FreeBSD 上尝试过,但我想它也可以。有关在 FreeBSD 上使用 pip 的警告,请参阅 related answer

    您可以通过以下方式查看文件:

    parquet-tools show filename.parquet
    

    【讨论】:

    • 这个答案对 CentOS Stream 8 没有帮助,因为我收到错误“命令“python setup.py egg_info”失败,错误代码为 1 in /tmp/pip-build-ze7r45bk/pyarrow/ “!
    • 您可能需要升级pip 版本,例如python3 -m pip install --upgrade pip 安装前parquet-tools。如果这不能解决问题,您可以提出一个新问题。
    • 是的,升级 pip 版本有帮助。谢谢(赞成)!
    【解决方案3】:

    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,则最好使用后者。请注意,可能两者都需要安装 thrift 编译器。

    【讨论】:

    • 我一直在尝试仅编译 parquet-tools,但不断收到以下错误:[ERROR] thrift failed output: [WARNING:/home/user/parquet-mr/parquet-format-structures/target/parquet-format-thrift/parquet.thrift:295] The "byte" type is a compatibility alias for "i8". Use "i8" to emphasize the signedness of this type.我无法找到任何解决方案或解决方法来解决这种情况。我已经安装了 Thrift。 Thrift version 1.0.0 有什么想法吗?
    • 这很奇怪,这只是一个警告,它不应该使构建失败。不过,试试 Thrift 0.9.3,这是 parquet-mr 需要的,它不会有这个问题。另见issues.apache.org/jira/browse/PARQUET-1425
    • 现在我收到了不同的错误消息。它说以下/home/edwinalejandro/parquet-mr/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/ColumnIndexFilterUtils.java:[30,34] package it.unimi.dsi.fastutil.ints does not exist我已经打开了java文件,它确实包含以下包:import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList;
    • 除非您要使用“hadoop ...”命令运行,否则您应该使用 -Dhadoop.scope=compile
    【解决方案4】:

    Parquet 工具- 可用于读取 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 
    

    【讨论】:

      【解决方案5】:

      有些答案的 jar 下载链接已损坏,但您可以从 maven central

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-07
        • 1970-01-01
        • 1970-01-01
        • 2016-07-04
        • 1970-01-01
        • 1970-01-01
        • 2015-05-30
        • 2019-09-23
        相关资源
        最近更新 更多