从 Apache Flink Datastream 中提取一个字段值(大部分是常量)<GenericRecord>

Extracting a field value (mostly constant) from Apache Flink Datastream<GenericRecord>

我有一个数据流,其中包含一些字段,如 event_id、时间戳等,这些字段对于管道中的许多记录保持不变。我想在使用 StreamingFileSink 将其写回 ParquetFormat 时使用文件名中的那些。如果我们使用常量,我们可以使用后缀和前缀。但是,我需要帮助从记录中提取可用于生成文件名的值。

文件名模式 _ --.parquet

OutputFileConfig config = OutputFileConfig
 .builder()
 .withPartPrefix("prefix")
 .withPartSuffix(".ext")
 .build();

我打算使用它,但需要帮助从记录中提取“前缀”。

对此的任何想法都会很有帮助。 提前致谢:)

OutputFileConfig目前的实现只支持固定前缀和后缀参数,不支持自定义逻辑

public class OutputFileConfig implements Serializable {

    private final String partPrefix;

    private final String partSuffix;

    /**
     * Initiates the {@code PartFileConfig} with values passed as parameters.
     *
     * @param partPrefix - the beginning of part file name
     * @param partSuffix - the ending of part file name
     */
    public OutputFileConfig(final String partPrefix, final String partSuffix) {
        this.partPrefix = Preconditions.checkNotNull(partPrefix);
        this.partSuffix = Preconditions.checkNotNull(partSuffix);
    }