我正在使用confluent的kafkaavroderserializer反序列化通过kafka发送的avro对象。我想把收到的数据写入Parquet文件。我希望能够将数据附加到同一个Parquet地板上,并创建带有分区的Parquet地板。
我设法用avroparquetwriter创建了一个Parquet地板-但我没有找到如何添加分区或附加到同一个文件:
在使用avro之前,我使用spark来编写parquet——spark编写带有分区的parquet,使用append模式很简单——我是否应该尝试从avro对象创建rdd并使用spark来创建parquet?
1条答案
按热度按时间myss37ts1#
我想把Parquet写给hdfs
就我个人而言,我不会用spark来做这个。
我宁愿使用hdfsKafka连接器。这是一个可以让你开始的配置文件。
如果您希望hdfs分区基于一个字段而不是文字上的“kafka partition”编号,那么请参阅
FieldPartitioner
. 如果你想自动集成Hive,请参阅文件,以及。假设您确实想使用spark,但是,您可以尝试absaoss/abris在avroDataframe中读取,然后您应该能够执行以下操作
df.write.format("parquet").path("/some/path")
(不是精确的代码,因为我没有试过)