[
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)