Дата конвертируется в значение по умолчанию после сохранения в Kafka - PullRequest
0 голосов
/ 29 июня 2019

Я сохранил данные в формате Avro (Generic Record) в Kafka и затем извлек их. Данные состоят из 2 полей типа String и типа Date. Когда я сохраняю в Kafka, я должен преобразовать дату в время. Тем не менее, когда я получаю дату назад, для нее устанавливается значение по умолчанию. Как это можно исправить?

Дата до записи в Кафку: 2019-03-19 Дата, сохраненная в Kafka: 1552953600000

Дата и время, полученные от Кафки: 1824561152 Дата конвертируется из даты и времени: 1969-12-10

Вот код для записи в Кафку:

val avroRecord = new GenericData.Record(parseAvroSchemaFromFile("/avro-offset-schema.json"))
avroRecord.put("stringValue", tableNameValue)
avroRecord.put("stringValue2", codeValue)
avroRecord.put("date", state)

val producer = new KafkaProducer[String, GenericRecord](kafkaParams)
val data = new ProducerRecord[String, GenericRecord](kafkaTopic, avroRecord)
producer.send(data)

Код для чтения данных из Кафки:

val dataRDD = KafkaUtils.createRDD(
  sparkSession.sparkContext,
  sparkAppConfig.kafkaParams.asJava,
  offsetRanges,
  LocationStrategies.PreferConsistent
)

val genericRecordsValues = dataRDD.map(record => record.value().asInstanceOf[GenericRecord])

val genericRecordsFields = genericRecordsValues.map(
  record =>
    (
      record.get("TableName").toString,
      record.get("Code").toString,
      new Date(record.get(dayColumnName).asInstanceOf[Long])))

genericRecordsFields.first()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...