отметка времени в чтении улья из CSV, созданного искрой, равной нулю - PullRequest
0 голосов
/ 23 октября 2018

Итак, у меня есть входные данные, которые выглядят так:

HEADER_A|HEADER_B|HEADER_C|HEADER_D
2018-09-28 22:12:09.0461760|first|last|123
2018-09-28 22:14:11.0123550|first|second|124

Затем я читаю это в фрейм данных и сохраняю как временное представление с именем temp_view.Все читается как строка.

Затем я сделаю запрос к этому временному представлению:

val df = sqlContext.sql("""
    SELECT
    from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss') as ETL_RunDate,
    HEADER_A as timestamp,
    HEADER_B as string,
    HEADER_c as string,
    HEADER_D as string
    FROM temp_view
""")

И затем запишу этот кадр данных в файл.Этот файл выглядит следующим образом:

2018-10-23 05:32:49|2018-09-28T22:12:09.046Z|first|last|123
2018-10-23 05:32:49|2018-09-28T22:14:11.123Z|first|second|124

Если я затем использую эти данные в качестве данных для таблицы улья со схемой:

CREATE EXTERNAL TABLE `testdb.testtable`(
  `runts` timestamp COMMENT '',
  `header_a` timestamp COMMENT '',
  `header_b` string COMMENT '',
  `header_c` string COMMENT '',
  `header_d` string COMMENT '')

И запросить эту таблицу -

select * from testdb.testtable;

header_a прибывает как ноль, когда это должно прибыть, поскольку основные данные там.

Почему это происходит и как я могу это исправить?

1 Ответ

0 голосов
/ 23 октября 2018

Проблема в том, что формат отметки времени в выходном файле yyyy-MM-dd'T'HH:mm:ss.SSSX отличается от формата отметки времени куста по умолчанию yyyy-mm-dd hh:mm:ss[.f...].

У вас есть два варианта:

  • Записьиз файла, используя формат по умолчанию.Вам нужно обновить запись на что-то вроде df.write.format("csv").option("dateFormat", "yyyy-MM-dd hh:mm:ss.SSSSSSS")
  • Обновите SERDEPROPERTIES таблицы, чтобы прочитать формат - ALTER TABLE testtable SET SERDEPROPERTIES ("timestamp.formats"= "yyyy-MM-dd'T'HH:mm:ss.SSSX")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...