How to convert string to datetime format in parquet file format within parquet datastore?

21 次查看(过去 30 天)
The below is the sample parquet datastructure that i am using.
This is the structure of the data. Where both the date and time are in string format. This is the data that have been converted in csv to parquet. I have tried many times to convert second and third column into datetime format. So that I can write some query to operate/plot on perticular duration for analysis.
So the question is how to convert the string into second and third column into datetime format in parquet file format?
I am using Matlab 2020a.
Many Thanks in advance!

采纳的回答

Stephen23
Stephen23 2020-7-15
编辑:Stephen23 2020-7-15
>> D = {'2020/1/1' ;'2020/1/1' ;'2020/1/1' };
>> T = {'00:01:0:0';'00:01:0:60';'00:01:0:320'};
Method one: sscanf and duration:
>> M = sscanf(sprintf(' %s:',T{:}),'%f:',[4,Inf]).';
>> dt = datetime(D,'InputFormat','yyyy/M/d') + duration(M(:,1),M(:,2),M(:,3),M(:,4))
dt =
01-Jan-2020 00:01:00
01-Jan-2020 00:01:00
01-Jan-2020 00:01:00
>> dt.Second % check the milliseconds:
ans =
0
0.0600
0.3200
Method two: regexprep:
>> C = strcat(D,'@',regexprep(T,{':(\d)$',':(\d\d)$'},{':00$1',':0$1'}));
>> dt = datetime(C,'InputFormat','yyyy/M/d@H:m:s:SSS')
dt =
01-Jan-2020 00:01:00
01-Jan-2020 00:01:00
01-Jan-2020 00:01:00
>> dt.Second % check the milliseconds:
ans =
0
0.0600
0.3200
  2 个评论
Maitreyee Dey
Maitreyee Dey 2020-7-15
Thank you for the answer.
Sorry i might not explain properly what I need,
I have 1440 files for a day and each file consists of 6000 rows indicating each 10ms intervals of data.
I have successfully converted them into csv to parquet but can't able convert the two strings colum into datetime format. I have attached one file in csv format from the datalake as I won't be able to attached the parquet file. PFA. If this one
As you mentioned the below how can i automatically setect these values instead?
D = {'2020/1/1' ;'2020/1/1' ;'2020/1/1' };
T = {'00:01:0:0';'00:01:0:60';'00:01:0:320'};
i.e., if the file name
data = readtable('P3007768_2020-01-01-00-59-00.csv');
D = data(:,2);
T = data(:,3);
and then what will be the code of method one and two? how I can convert them into datetime format into another column or may merge these two columns into one and save a new file?
Where the column looks like
01-Jan-2020 00:59:00:00
......
01-Jan-2020 00:59:59:990

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by