Как читать паркетный файл из ведра s3 в нифи? - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь прочитать паркетный файл из ведра s3 в nifi.Для чтения файла я использовал процессор listS3 и fetchS3Object, а затем ExtractAttribute процессор.пока там все не выглядело нормально.

файлы находятся в parquet.gz файле, и я ни в коем случае не смог сгенерировать flowfile из них. Моя последняя цель - загрузить файл в noSql(SnowFlake).

FetchParquet работает с HDFS, который мы не используем.

Мой следующий вариант - использовать процессор executeScriptpython), чтобы прочитать эти файлы паркета и сохранить их обратнок тексту.

Может кто-нибудь предложить какие-нибудь обходные пути.

1 Ответ

0 голосов
/ 31 января 2019

Это зависит от того, что вам нужно сделать с файлами Parquet.

Например, если вы хотите получить их на локальный диск, то ListS3 -> FetchS3Object -> PutFile будет работать нормально.Это потому, что этот сценарий просто перемещается вокруг байтов и на самом деле не имеет значения, является ли это паркетом или нет.

Если вам нужно как-то интерпретировать данные Parquet, что звучит так, как если бы вы получалив базу данных, вам нужно использовать FetchParquet и конвертировать из Parquet в какой-нибудь другой формат, например Avro, Json или Csv, а затем отправить его на один из процессоров базы данных.

Вы можете использовать Fetch / PutПроцессоры для паркета или любые другие процессоры HDFS с s3 путем настройки core-site.xml с файловой системой s3.

http://apache -nifi-users-list.2361937.n4.nabble.com/PutParquet-with-S3-td3632.html

...