Flink之FileSink将数据写入parquet文件_flink写parquet文件(2)

文章介绍了如何在ApacheFlink中使用`ParquetAvroWriters`替换过时的`ParquetWriterFactory`,以及如何配合`FileSink`和`Checkpoint`确保数据完整性和列式文件结构。内容涉及Avroschema、Parquet文件格式和Flink的Exactly-Once语义。
摘要由CSDN通过智能技术生成

* Convenience builder to create {@link ParquetWriterFactory} instances for the different Avro
* types.
*
* @deprecated use {@link AvroParquetWriters} instead. // 看这部分是建议使用AvroParquetWriters
*/
@Deprecated // 这里已经标注了过时
public class ParquetAvroWriters {

/\*\*

* Creates a ParquetWriterFactory for an Avro specific type. The Parquet writers will use the
* schema of that specific type to build and write the columnar data.
*
* @param type The class of the type to write.
*/
public static ParquetWriterFactory forSpecificRecord(
Class type) {
return AvroParquetWriters.forSpecificRecord(type);
}


* AvroParquetWriters.forReflectRecord(方式三)

 这里就先介绍一下`AvroParquetWriters.forReflectRecord`的使用方式,我们在使用`FileSink`时最好配合`Checkpoint`使用,不然文件只会出现`inprogress`状态,感兴趣的可以自己实验一下,我在[Flink中FileSink的使用]( )演示了加`Checkpoint`和不加`Checkpoint`的区别感兴趣的可以看一下.

 代码模板内容比较简单,直接代码演示:

 

import com.jin.bean.User;
import com.jin.schema.UserSchemaBean;
import org.apache.flink.connector.file.sink.FileSink;
import org.apache.flink.core.fs.Path;
import org.apache.flink.formats.parquet.ParquetWriterFactory;
import org.apache.flink.formats.parquet.avro.AvroParquetWriters;
import org.apache.flink.streaming.api.CheckpointingMode;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.CheckpointConfig;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.sink.filesystem.bucketassigners.DateTimeBucketAssigner;
import org.apache.flink.streaming.api.functions.sink.filesystem.rollingpolicies.OnCheckpointRollingPolicy;

/**
* @Author: J
* @

  • 14
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值