From 80cf3033a58596f6c140ee1d20d0f2dd45ffb954 Mon Sep 17 00:00:00 2001 From: Andy Grove Date: Wed, 13 Mar 2019 15:44:46 -0600 Subject: [PATCH] add date support --- rust/parquet/src/reader/schema.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rust/parquet/src/reader/schema.rs b/rust/parquet/src/reader/schema.rs index 239937c89b742..74b4c2c95f217 100644 --- a/rust/parquet/src/reader/schema.rs +++ b/rust/parquet/src/reader/schema.rs @@ -28,7 +28,7 @@ use crate::basic::{LogicalType, Repetition, Type as PhysicalType}; use crate::errors::{ParquetError::ArrowError, Result}; use crate::schema::types::{SchemaDescPtr, Type, TypePtr}; -use arrow::datatypes::{DataType, Field, Schema}; +use arrow::datatypes::{DataType, DateUnit, Field, Schema}; /// Convert parquet schema to arrow schema. pub fn parquet_to_arrow_schema(parquet_schema: SchemaDescPtr) -> Result { @@ -197,6 +197,7 @@ impl ParquetTypeConverter { LogicalType::INT_8 => Ok(DataType::Int8), LogicalType::INT_16 => Ok(DataType::Int16), LogicalType::INT_32 => Ok(DataType::Int32), + LogicalType::DATE => Ok(DataType::Date32(DateUnit::Millisecond)), other => Err(ArrowError(format!( "Unable to convert parquet logical type {}", other @@ -209,6 +210,7 @@ impl ParquetTypeConverter { LogicalType::NONE => Ok(DataType::Int64), LogicalType::INT_64 => Ok(DataType::Int64), LogicalType::UINT_64 => Ok(DataType::UInt64), + LogicalType::DATE => Ok(DataType::Date64(DateUnit::Millisecond)), other => Err(ArrowError(format!( "Unable to convert parquet logical type {}", other