DateTime в USQL автоматически конвертируется в Unix Timestamp в файле паркета - PullRequest
0 голосов
/ 19 июня 2019

У меня проблема со значением DateTime, сгенерированным U-SQL . Я написал U-SQL для сохранения данных в файле паркета, но все столбцы DateTime автоматически преобразуются в Int64 (метка времени Unix).

Я пытался исследовать и нашел некоторые данные в https://github.com/Azure/AzureDataLake/blob/master/docs/Release_Notes/2018/2018_Spring/USQL_Release_Notes_2018_Spring.md#data-driven-output-partitioning-with-output-fileset-is-in-private-preview. Все DateTime будут преобразованы в int64.

Зачем MS это делать? и как я могу сохранить исходное значение DateTime, сгенерированное U-SQL, в файле партера.

Я поставил простой код ниже:

SET @@FeaturePreviews = "EnableParquetUdos:on";

 @I =
   SELECT DateTime.Parse("2015-05-10T12:15:35.1230000Z") AS c_timestamp
   FROM (VALUES(1)) AS T(x);

 OUTPUT @I 
 TO @"/data/Test_TimeStamp.parquet"
 USING Outputters.Parquet();

Результат в файле паркета: c_timestamp -Int64 datatype - 1431260135123000

Но я ожидал паркетный файл вроде: c_timestamp - DateTime datatype - 2015-05-10T12:15:35.1230000Z

...