Невозможно записать CSV-файл с заголовками в корзину S3, используя функцию приемника Apache Flink. ⇐ JAVA
-
Anonymous
Невозможно записать CSV-файл с заголовками в корзину S3, используя функцию приемника Apache Flink.
Мой проект требует записи CSV-файла в корзину S3, содержащего заголовки, с использованием функции приемника Apache Flink (версия 1.18.0). Используемый язык программирования — Java. Файловая система Hadoop используется через библиотеку flink под названием «flink-s3-fs-hadoop».
Пример данных в формате CSV:
student_id,exam_id,предмет,балл,оценка 1,1,Математика,41,Д 1,1,Испанский,51,С Приведенный ниже код работает, но не записывает заголовки в файл csv в S3. Используемый фрагмент кода:
private static Final StreamExecutionEnvironment ENV; частный статический окончательный StreamTableEnvironment TABLE_ENV; статический { ENV = StreamExecutionEnvironment.getExecutionEnvironment() .setRuntimeMode(RuntimeExecutionMode.BATCH) .setParallelism(1); TABLE_ENV = StreamTableEnvironment.create(ENV); } Тип данных Тип данных = Типы Данных.СТРОКА( DataTypes.FIELD("student_id", DataTypes.INT()), DataTypes.FIELD("exam_id", DataTypes.INT()), DataTypes.FIELD("субъект", DataTypes.STRING()), DataTypes.FIELD("оценка", DataTypes.INT()), DataTypes.FIELD("оценка", DataTypes.STRING()) ); RowType rowType = (RowType) dataType.getLogicalType(); CsvRowDataSerializationSchema serSchemaBuilder = новый CsvRowDataSerializationSchema.Builder(rowType).build(); Приемник FileSink = FileSink.forRowFormat(новый путь(s3FilePath), новый SerializationSchemaAdapter(serSchemaBuilder)) .withOutputFileConfig(новый OutputFileConfig("тест", ".csv")) .строить(); rowData.sinkTo(приемник); ЕНВ.выполнить(); Ожидаемый вывод файла CSV в S3:
student_id,exam_id,предмет,балл,оценка 1,1,Математика,41,Д 1,1,Испанский,51,С Фактический вывод файла CSV в S3:
1,1,Math,41,D 1,1,Испанский,51,С Может кто-нибудь сообщить мне, есть ли способ написать CSV-файл с заголовками, используя функцию приемника?
Мой проект требует записи CSV-файла в корзину S3, содержащего заголовки, с использованием функции приемника Apache Flink (версия 1.18.0). Используемый язык программирования — Java. Файловая система Hadoop используется через библиотеку flink под названием «flink-s3-fs-hadoop».
Пример данных в формате CSV:
student_id,exam_id,предмет,балл,оценка 1,1,Математика,41,Д 1,1,Испанский,51,С Приведенный ниже код работает, но не записывает заголовки в файл csv в S3. Используемый фрагмент кода:
private static Final StreamExecutionEnvironment ENV; частный статический окончательный StreamTableEnvironment TABLE_ENV; статический { ENV = StreamExecutionEnvironment.getExecutionEnvironment() .setRuntimeMode(RuntimeExecutionMode.BATCH) .setParallelism(1); TABLE_ENV = StreamTableEnvironment.create(ENV); } Тип данных Тип данных = Типы Данных.СТРОКА( DataTypes.FIELD("student_id", DataTypes.INT()), DataTypes.FIELD("exam_id", DataTypes.INT()), DataTypes.FIELD("субъект", DataTypes.STRING()), DataTypes.FIELD("оценка", DataTypes.INT()), DataTypes.FIELD("оценка", DataTypes.STRING()) ); RowType rowType = (RowType) dataType.getLogicalType(); CsvRowDataSerializationSchema serSchemaBuilder = новый CsvRowDataSerializationSchema.Builder(rowType).build(); Приемник FileSink = FileSink.forRowFormat(новый путь(s3FilePath), новый SerializationSchemaAdapter(serSchemaBuilder)) .withOutputFileConfig(новый OutputFileConfig("тест", ".csv")) .строить(); rowData.sinkTo(приемник); ЕНВ.выполнить(); Ожидаемый вывод файла CSV в S3:
student_id,exam_id,предмет,балл,оценка 1,1,Математика,41,Д 1,1,Испанский,51,С Фактический вывод файла CSV в S3:
1,1,Math,41,D 1,1,Испанский,51,С Может кто-нибудь сообщить мне, есть ли способ написать CSV-файл с заголовками, используя функцию приемника?
Мобильная версия