в моем случае у меня есть 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");
Спасибо