Установка паркета-инструментов

Я пытаюсь установить паркетные инструменты на машине с 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

Вот что я получил:

введите описание изображения здесь

Почему эта ошибка зависимости здесь? Как мне обойти это?

5 ответов

В Ubuntu 20 я устанавливаю через pip:

      python3 -m pip install parquet-tools

Не пробовал на FreeBSD, но думаю, это тоже сработает. См. Соответствующий ответ для предупреждения об использовании pip во FreeBSD.

И вы можете просмотреть файл с помощью:

      parquet-tools show filename.parquet

Я знаю, что вопрос определяет FreeBSD, но если вы на Mac, вы можете сделать

brew install parquet-tools

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, вам лучше с последним. Обратите внимание, что, вероятно, для обоих потребуется установка экономичного компилятора.

Инструменты для паркета - утилита, которая может использоваться для чтения файлов паркета. 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. Протестируйте его (вставьте файл паркета в целевой каталог):

 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

// Читаем несколько строк в паркетном файле

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

В некоторых ответах есть неработающая ссылка для загрузки jar, но вы можете получить ее из центра maven

Однако... этот jar и другие подобные ему созданы так, что зависимости hadoop "предусмотрены", и если вы собираете из исходного кода, вы получите это значение по умолчанию. Итак, вам нужно установить -Dhadoop.scope=compile при сборке, иначе результат будет работать только при запуске на узле hadoop с помощью команды "hadoop ...".

Что еще хуже, этот инструмент, по-видимому, отключает System.out и System.err, так что исключения, вызывающие сбой main(), никогда не печатаются, и вы будете задаваться вопросом, что произошло.

Я также обнаружил, что настройки по умолчанию для maven-license-plugin приводят к сбою сборки, когда появляются файлы, которых он не ожидал (например, nbactions.xml, если вы используете netbeans).

Другие вопросы по тегам