Apache Nifi:如何使用保存在 "avro.schema" 属性中的模式从 CSV 文件创建镶木地板文件
Apache Nifi : How to create parquet file from CSV file with schema saved in "avro.schema" attribute
我正在尝试使用 Apache Nifi 从 CSV 文件创建镶木地板文件。
我可以将 CSV 文件转换为 parquet 文件,但问题是,parquet 文件的模式包含结构类型(我需要克服)并将其转换为字符串类型。
我在 Windows Server 2016 上使用 Apache Nifi 1.14.0。
这就是我迄今为止尝试将 CSV 转换为 parquet 的方式...
以下3个控制器我都用过
- CSV 阅读器
- CSVRecordSetWriter
- ParquetRecordSetWriter
还有,这些是processors/Flow
- 获取文件
- ConvertRecord(CSVReader 到 CSVRecordSetWriter,这将自动生成“avro.schema”属性,下一步我将更新此属性)
- UpdateAttribute(更新“avro.schema”属性,在我推断出 2 种数据类型的地方,我将其替换为 '[“null”,“string”]')
- ConvertRecord(CSVReader 到 ParquetRecordSetWriter)
- UpdatedAttribute(用于在文件名中附加“.parquet”)
- PutFile
我也想知道如何在 Windows OS 中查看 .parquet 文件。目前,我正在通过 PySpark 读取镶木地板文件并检查架构。 :|
这是转换后镶木地板文件架构的样子。我想要 string 而不是 Struct 作为输出。
请注意:有很多 columns/fields 的 CSV。我不想手动创建模式。
或
任何其他实现此目的的方法都会非常有帮助。
谢谢!
在尝试了“ParquetRecordSetWriter”的更多选项后,我能够使用我在“”中捕获的模式创建镶木地板文件avro.schema”属性。
我正在尝试使用 Apache Nifi 从 CSV 文件创建镶木地板文件。
我可以将 CSV 文件转换为 parquet 文件,但问题是,parquet 文件的模式包含结构类型(我需要克服)并将其转换为字符串类型。
我在 Windows Server 2016 上使用 Apache Nifi 1.14.0。
这就是我迄今为止尝试将 CSV 转换为 parquet 的方式...
以下3个控制器我都用过
- CSV 阅读器
- CSVRecordSetWriter
- ParquetRecordSetWriter
还有,这些是processors/Flow
- 获取文件
- ConvertRecord(CSVReader 到 CSVRecordSetWriter,这将自动生成“avro.schema”属性,下一步我将更新此属性)
- UpdateAttribute(更新“avro.schema”属性,在我推断出 2 种数据类型的地方,我将其替换为 '[“null”,“string”]')
- ConvertRecord(CSVReader 到 ParquetRecordSetWriter)
- UpdatedAttribute(用于在文件名中附加“.parquet”)
- PutFile
我也想知道如何在 Windows OS 中查看 .parquet 文件。目前,我正在通过 PySpark 读取镶木地板文件并检查架构。 :|
这是转换后镶木地板文件架构的样子。我想要 string 而不是 Struct 作为输出。
请注意:有很多 columns/fields 的 CSV。我不想手动创建模式。
或
任何其他实现此目的的方法都会非常有帮助。
谢谢!
在尝试了“ParquetRecordSetWriter”的更多选项后,我能够使用我在“”中捕获的模式创建镶木地板文件avro.schema”属性。