예제 #1
0
        public static Type ParquetNetTypeToCSharpType(Parquet.Data.DataType type)
        {
            Type columnType = null;

            switch (type)
            {
            case Parquet.Data.DataType.Boolean:
                columnType = typeof(bool);
                break;

            case Parquet.Data.DataType.Byte:
                columnType = typeof(sbyte);
                break;

            case Parquet.Data.DataType.ByteArray:
                columnType = typeof(sbyte[]);
                break;

            case Parquet.Data.DataType.DateTimeOffset:
                //Let's treat DateTimeOffsets as DateTime
                columnType = typeof(DateTime);
                break;

            case Parquet.Data.DataType.Decimal:
                columnType = typeof(decimal);
                break;

            case Parquet.Data.DataType.Double:
                columnType = typeof(double);
                break;

            case Parquet.Data.DataType.Float:
                columnType = typeof(float);
                break;

            case Parquet.Data.DataType.Short:
            case Parquet.Data.DataType.Int16:
            case Parquet.Data.DataType.Int32:
            case Parquet.Data.DataType.UnsignedInt16:
                columnType = typeof(int);
                break;

            case Parquet.Data.DataType.Int64:
                columnType = typeof(long);
                break;

            case Parquet.Data.DataType.UnsignedByte:
                columnType = typeof(byte);
                break;

            case Parquet.Data.DataType.String:
            default:
                columnType = typeof(string);
                break;
            }

            return(columnType);
        }
        private DataType ConvertDataType(Parquet.Data.DataType dataType)
        {
            switch (dataType)
            {
            case Parquet.Data.DataType.String:
                return(DataType.String);

            case Parquet.Data.DataType.Boolean:
                return(DataType.Boolean);

            case Parquet.Data.DataType.Int32:
                return(DataType.Int);

            case Parquet.Data.DataType.Double:
                return(DataType.Double);

            case Parquet.Data.DataType.DateTimeOffset:
                return(DataType.DateTime);
            }

            return(DataType.Unknown);
        }