簡體   English   中英

安裝鑲木地板工具

[英]Installing parquet-tools

我正在嘗試在 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

這是我得到的:

在此處輸入圖片說明

為什么這里出現這種依賴錯誤? 我該如何解決?

我知道這個問題指定了 FreeBSD,但如果你使用的是 mac,你可以這樣做

brew install parquet-tools

在 Ubuntu 20 上,我通過pip安裝:

python3 -m pip install parquet-tools

還沒有嘗試過 FreeBSD,但我想它也可以工作。

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

parquet-tools show filename.parquet

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 工具- 可用於讀取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 是我在目標目錄下的鑲木地板文件)

在此處輸入圖片說明

// 讀取拼花文件

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 

一些答案已斷開 jar 下載的鏈接,但您可以從maven central獲取它

但是……這個 jar 和其他類似的 jar 的構建是為了“提供”hadoop 依賴項,如果您從源代碼構建,您將獲得該默認值。 因此,您需要在構建時設置 -Dhadoop.scope=compile ,否則結果僅在使用“hadoop ...”命令在 hadoop 節點上運行時才有效。

更糟糕的是,這個工具顯然禁用了 System.out 和 System.err,因此導致 main() 失敗的異常永遠不會被打印出來,你會想知道發生了什么。

我還發現 maven-license-plugin 的默認設置導致它在出現它不期望的文件時構建失敗(例如,如果您使用 netbeans,則為 nbactions.xml)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM