我正在尝试从Nifi中的s3存储桶读取实木复合地板文件。
读取我已使用处理器listS3
和fetchS3Object
然后使用ExtractAttribute
处理器的文件。直到那里看起来还不错。
文件位于parquet.gz
文件中,绝对不能从它们生成flowfile
。我的最终目的是将文件加载到noSql(SnowFlake)
中。
FetchParquet
与未使用的HDFS
一起使用。
我的下一个选择是使用executeScript
处理器(与python
一起)读取这些镶木地板文件并将其保存回文本。
有人可以建议任何解决方法吗?
答案 0 :(得分:1)
这取决于您需要对Parquet文件执行什么操作。
例如,如果您想将它们添加到本地磁盘,则ListS3-> FetchS3Object-> PutFile将可以正常工作。这是因为这种情况只是绕字节移动,而实际上是否为Parquet都无关紧要。
如果您需要以某种方式实际解释Parquet数据,这听起来就像您将其导入数据库一样,那么您需要使用FetchParquet并将Parquet转换为其他格式,例如Avro,Json或Csv ,然后将其发送到数据库处理器之一。
通过为s3文件系统配置core-site.xml,您可以在s3上使用Fetch / Put Parquet处理器或任何其他HDFS处理器。
http://apache-nifi-users-list.2361937.n4.nabble.com/PutParquet-with-S3-td3632.html