Skip to content

Commit f3c4b0c

Browse files
committed
Add support for Apache.Arrow.Types.TimestampType to DataFrame
1 parent e825750 commit f3c4b0c

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

src/Microsoft.Data.Analysis/DataFrame.Arrow.cs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,25 @@ private static void AppendDataFrameColumnFromArrowArray(Field field, IArrowArray
102102
}
103103
break;
104104
case ArrowTypeId.Date64:
105-
Date64Array arrowDate64Array = (Date64Array)arrowArray;
106-
dataFrameColumn = new DateTimeDataFrameColumn(fieldName, arrowDate64Array.Data.Length);
107-
for (int i = 0; i < arrowDate64Array.Data.Length; i++)
108105
{
109-
dataFrameColumn[i] = arrowDate64Array.GetDateTime(i);
106+
Date64Array arrowDate64Array = (Date64Array)arrowArray;
107+
var dataTimeDataFrameColumn = new DateTimeDataFrameColumn(fieldName, arrowDate64Array.Data.Length);
108+
for (int i = 0; i < arrowDate64Array.Data.Length; i++)
109+
{
110+
dataTimeDataFrameColumn[i] = arrowDate64Array.GetDateTime(i);
111+
}
112+
dataFrameColumn = dataTimeDataFrameColumn;
113+
}
114+
break;
115+
case ArrowTypeId.Timestamp:
116+
{
117+
TimestampArray arrowTimeStampArray = (TimestampArray)arrowArray;
118+
var dataTimeDataFrameColumn = new DateTimeDataFrameColumn(fieldName, arrowTimeStampArray.Data.Length);
119+
for (int i = 0; i < arrowTimeStampArray.Data.Length; i++)
120+
{
121+
dataTimeDataFrameColumn[i] = arrowTimeStampArray.GetTimestamp(i)?.DateTime;
122+
}
123+
dataFrameColumn = dataTimeDataFrameColumn;
110124
}
111125
break;
112126
case ArrowTypeId.Decimal128:
@@ -122,7 +136,7 @@ private static void AppendDataFrameColumnFromArrowArray(Field field, IArrowArray
122136
case ArrowTypeId.Null:
123137
case ArrowTypeId.Time32:
124138
case ArrowTypeId.Time64:
125-
case ArrowTypeId.Timestamp:
139+
126140
default:
127141
throw new NotImplementedException($"{fieldType.Name}");
128142
}

0 commit comments

Comments
 (0)