上篇文章Flink入门(七) 写入HDFS
现在,我想把java-bean写入csv文件。
有两种方式,第一种将增加map,将bean改成string类型(以“,”分割),但不可以复用。
第二种方式,重写StreamWriterBase,类似于StringWriter。
代码如下
import org.apache.flink.api.java.io.CsvOutputFormat;
import org.apache.flink.streaming.connectors.fs.StreamWriterBase;
import org.apache.flink.streaming.connectors.fs.Writer;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.lang.reflect.Field;
import java.nio.charset.Charset;
import java.nio.charset.IllegalCharsetNameException;
import java.nio.charset.UnsupportedCharsetException;
public class BeanCsvWriter<T> extends StreamWriterBase<T> {
private static final Logger LOG = LoggerFactory.getLogger(BeanCsvWriter.class);
private static final long serialVers