Как записать дату и время в виде строкового значения в столбец метки времени - PullRequest
0 голосов
/ 18 января 2020

в моем случае у меня есть UDF (C#), который возвращает строку json. Одним из атрибутов в json является значение DateTime. Когда я извлекаю это json и сохраняю атрибут как столбец типа timestamp в таблице Delta, он изменяет значение исходной строки. Как я могу сделать это, чтобы написать без изменения значения. я попробовал это из двух дельта-таблиц (из одного конвейера задания потоковой передачи), и каждый раз количество изменений отличается. пример значений

запрос 1: исходная строка: 2020-01-16T10: 10: 16.1195135Z, когда я считываю значение столбца из дельта-таблицы: 2020-01-16T10: 30: 11.135Z

запрос 2: исходная строка: 2020-01-16T10: 10: 19.1575446Z, когда я читаю значение дельта-таблицы: 2020-01-16T10: 36: 34.446Z

, поскольку оба запроса находятся в одном конвейере задания, строка значения отличаются только на 3 секунды, но значение, когда я читаю из дельта-таблицы, не отличается от 3 se c, поэтому я сомневаюсь, что это связано с местным часовым поясом

любые предложения о том, как сохранить значение в типе столбца timestamp, чтобы исходное строковое значение не изменялось? Я хочу в timestamp, как позже, я должен сделать некоторое сравнение даты и времени для этого столбца.

Ниже приведен псевдо C# код, который Я использую, чтобы извлечь json и сохранить.

// calling my UDF
var jsonDF = basisPackage.Select(myudf(Functions.Col(Schemas.BasisSchema.Message)).As("JsonResult"));

// extracting columns from JSON
var resultDF = jsonDF.Select(Functions.FromJson(Functions.Col("JsonResult"), converter.GetSchemAsJson()).As("finalBasis"))
                    .Select("finalBasis.*");
// saving DataFram to Table
mytable.WriteStream(resultDF, "mydeltatalbename");

Спасибо

...