[ 
https://issues.apache.org/jira/browse/PARQUET-796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15744710#comment-15744710
 ] 

Jakub Liska commented on PARQUET-796:
-------------------------------------

Good thing is that, if I make the INT64 as OriginalType.TIMESTAMP_MILLIS, then 
it Delta Encoding is used, so it all ended well for my purpose. 

I just cannot find the place where this is determined in the parquet codebase, 
so that for a newcomer it is sort of hard to know how to use a particular 
encoding for a column.

So far I learnt that : 
ENUM = RLE_DICTIONARY
TIMESTAMP_MILLIS = DELTA_BINARY_PACKED
others like BINARY as UTF8 = DELTA_BYTE_ARRAY


> Delta Encoding is not used when dictionary enabled
> --------------------------------------------------
>
>                 Key: PARQUET-796
>                 URL: https://issues.apache.org/jira/browse/PARQUET-796
>             Project: Parquet
>          Issue Type: Bug
>          Components: parquet-mr
>    Affects Versions: 1.9.0
>            Reporter: Jakub Liska
>            Priority: Critical
>             Fix For: 1.9.1
>
>
> Current code doesn't enable using both Delta Encoding and Dictionary 
> Encoding. If I instantiate ParquetWriter like this : 
> {code}
> val writer = new ParquetWriter[Group](outFile, new GroupWriteSupport, codec, 
> blockSize, pageSize, dictPageSize, enableDictionary = true, true, 
> ParquetProperties.WriterVersion.PARQUET_2_0, configuration)
> {code}
> Then this piece of code : 
> https://github.com/apache/parquet-mr/blob/master/parquet-column/src/main/java/org/apache/parquet/column/values/factory/DefaultValuesWriterFactory.java#L78-L86
> Causes that DictionaryValuesWriter is used instead of the inferred 
> DeltaLongEncodingWriter. 
> The original issue is here : 
> https://github.com/apache/parquet-mr/pull/154#issuecomment-266489768



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to