Установка паркета-инструментов
Я пытаюсь установить паркетные инструменты на машине с 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
ИЛИ Вы можете скачать стабильную версию и собранную из локального.
Качаем стабильный релиз 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).