| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <!-- NewPage --> |
| <html lang="en"> |
| <head> |
| <!-- Generated by javadoc --> |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
| <title>ParquetReaderUtility (Drill : 1.20.3 API)</title> |
| <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style"> |
| <script type="text/javascript" src="../../../../../../script.js"></script> |
| </head> |
| <body> |
| <script type="text/javascript"><!-- |
| try { |
| if (location.href.indexOf('is-external=true') == -1) { |
| parent.document.title="ParquetReaderUtility (Drill : 1.20.3 API)"; |
| } |
| } |
| catch(err) { |
| } |
| //--> |
| var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9}; |
| var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; |
| var altColor = "altColor"; |
| var rowColor = "rowColor"; |
| var tableTab = "tableTab"; |
| var activeTableTab = "activeTableTab"; |
| </script> |
| <noscript> |
| <div>JavaScript is disabled on your browser.</div> |
| </noscript> |
| <!-- ========= START OF TOP NAVBAR ======= --> |
| <div class="topNav"><a name="navbar.top"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> |
| <a name="navbar.top.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../../../overview-summary.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/ParquetReaderUtility.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../../help-doc.html">Help</a></li> |
| </ul> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderStats.html" title="class in org.apache.drill.exec.store.parquet"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.DateCorruptionStatus.html" title="enum in org.apache.drill.exec.store.parquet"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../../index.html?org/apache/drill/exec/store/parquet/ParquetReaderUtility.html" target="_top">Frames</a></li> |
| <li><a href="ParquetReaderUtility.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_top"> |
| <li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_top"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <li>Summary: </li> |
| <li><a href="#nested.class.summary">Nested</a> | </li> |
| <li><a href="#field.summary">Field</a> | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li><a href="#field.detail">Field</a> | </li> |
| <li><a href="#constructor.detail">Constr</a> | </li> |
| <li><a href="#method.detail">Method</a></li> |
| </ul> |
| </div> |
| <a name="skip.navbar.top"> |
| <!-- --> |
| </a></div> |
| <!-- ========= END OF TOP NAVBAR ========= --> |
| <!-- ======== START OF CLASS DATA ======== --> |
| <div class="header"> |
| <div class="subTitle">org.apache.drill.exec.store.parquet</div> |
| <h2 title="Class ParquetReaderUtility" class="title">Class ParquetReaderUtility</h2> |
| </div> |
| <div class="contentContainer"> |
| <ul class="inheritance"> |
| <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> |
| <li> |
| <ul class="inheritance"> |
| <li>org.apache.drill.exec.store.parquet.ParquetReaderUtility</li> |
| </ul> |
| </li> |
| </ul> |
| <div class="description"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <hr> |
| <br> |
| <pre>public class <span class="typeNameLabel">ParquetReaderUtility</span> |
| extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> |
| <div class="block">Utility class where we can capture common logic between the two parquet readers</div> |
| </li> |
| </ul> |
| </div> |
| <div class="summary"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ======== NESTED CLASS SUMMARY ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="nested.class.summary"> |
| <!-- --> |
| </a> |
| <h3>Nested Class Summary</h3> |
| <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> |
| <caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Class and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.DateCorruptionStatus.html" title="enum in org.apache.drill.exec.store.parquet">ParquetReaderUtility.DateCorruptionStatus</a></span></code> |
| <div class="block">For most recently created parquet files, we can determine if we have corrupted dates (see DRILL-4203) |
| based on the file metadata.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>static class </code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.NanoTimeUtils.html" title="class in org.apache.drill.exec.store.parquet">ParquetReaderUtility.NanoTimeUtils</a></span></code> |
| <div class="block">Utilities for converting from parquet INT96 binary (impala, hive timestamp) |
| to date time value.</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| <!-- =========== FIELD SUMMARY =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="field.summary"> |
| <!-- --> |
| </a> |
| <h3>Field Summary</h3> |
| <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> |
| <caption><span>Fields</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Field and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#ALLOWED_DRILL_VERSION_FOR_BINARY">ALLOWED_DRILL_VERSION_FOR_BINARY</a></span></code> </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>static long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#CORRECT_CORRUPT_DATE_SHIFT">CORRECT_CORRUPT_DATE_SHIFT</a></span></code> |
| <div class="block">All old parquet files (which haven't "is.date.correct=true" or "parquet-writer.version" properties |
| in metadata) have a corrupt date shift: 4881176L days or 2 * <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#JULIAN_DAY_NUMBER_FOR_UNIX_EPOCH">2440588L</a></div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#DATE_CORRUPTION_THRESHOLD">DATE_CORRUPTION_THRESHOLD</a></span></code> |
| <div class="block">The year 5000 (or 1106685 day from Unix epoch) is chosen as the threshold for auto-detecting date corruption.</div> |
| </td> |
| </tr> |
| <tr class="rowColor"> |
| <td class="colFirst"><code>static int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#DRILL_WRITER_VERSION_STD_DATE_FORMAT">DRILL_WRITER_VERSION_STD_DATE_FORMAT</a></span></code> |
| <div class="block">Version 2 (and later) of the Drill Parquet writer uses the date format described in the |
| <a href="https://github.com/Parquet/parquet-format/blob/master/LogicalTypes.md#date">Parquet spec</a>.</div> |
| </td> |
| </tr> |
| <tr class="altColor"> |
| <td class="colFirst"><code>static long</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#JULIAN_DAY_NUMBER_FOR_UNIX_EPOCH">JULIAN_DAY_NUMBER_FOR_UNIX_EPOCH</a></span></code> |
| <div class="block">Number of days between Julian day epoch (January 1, 4713 BC) and Unix day epoch (January 1, 1970).</div> |
| </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| <!-- ======== CONSTRUCTOR SUMMARY ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor.summary"> |
| <!-- --> |
| </a> |
| <h3>Constructor Summary</h3> |
| <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> |
| <caption><span>Constructors</span><span class="tabEnd"> </span></caption> |
| <tr> |
| <th class="colOne" scope="col">Constructor and Description</th> |
| </tr> |
| <tr class="altColor"> |
| <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#ParquetReaderUtility--">ParquetReaderUtility</a></span>()</code> </td> |
| </tr> |
| </table> |
| </li> |
| </ul> |
| <!-- ========== METHOD SUMMARY =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method.summary"> |
| <!-- --> |
| </a> |
| <h3>Method Summary</h3> |
| <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> |
| <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> |
| <tr> |
| <th class="colFirst" scope="col">Modifier and Type</th> |
| <th class="colLast" scope="col">Method and Description</th> |
| </tr> |
| <tr id="i0" class="altColor"> |
| <td class="colFirst"><code>static int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#autoCorrectCorruptedDate-int-">autoCorrectCorruptedDate</a></span>(int corruptedDate)</code> </td> |
| </tr> |
| <tr id="i1" class="rowColor"> |
| <td class="colFirst"><code>static void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#checkDecimalTypeEnabled-org.apache.drill.exec.server.options.OptionManager-">checkDecimalTypeEnabled</a></span>(<a href="../../../../../../org/apache/drill/exec/server/options/OptionManager.html" title="interface in org.apache.drill.exec.server.options">OptionManager</a> options)</code> </td> |
| </tr> |
| <tr id="i2" class="altColor"> |
| <td class="colFirst"><code>static <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.DateCorruptionStatus.html" title="enum in org.apache.drill.exec.store.parquet">ParquetReaderUtility.DateCorruptionStatus</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#checkForCorruptDateValuesInStatistics-org.apache.parquet.hadoop.metadata.ParquetMetadata-java.util.List-boolean-">checkForCorruptDateValuesInStatistics</a></span>(org.apache.parquet.hadoop.metadata.ParquetMetadata footer, |
| <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>> columns, |
| boolean autoCorrectCorruptDates)</code> |
| <div class="block">Detect corrupt date values by looking at the min/max values in the metadata.</div> |
| </td> |
| </tr> |
| <tr id="i3" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#containsComplexColumn-org.apache.parquet.hadoop.metadata.ParquetMetadata-java.util.List-">containsComplexColumn</a></span>(org.apache.parquet.hadoop.metadata.ParquetMetadata footer, |
| <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>> columns)</code> |
| <div class="block">Check whether any of columns in the given list is either nested or repetitive.</div> |
| </td> |
| </tr> |
| <tr id="i4" class="altColor"> |
| <td class="colFirst"><code>static void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#correctDatesInMetadataCache-org.apache.drill.exec.store.parquet.metadata.MetadataBase.ParquetTableMetadataBase-">correctDatesInMetadataCache</a></span>(<a href="../../../../../../org/apache/drill/exec/store/parquet/metadata/MetadataBase.ParquetTableMetadataBase.html" title="class in org.apache.drill.exec.store.parquet.metadata">MetadataBase.ParquetTableMetadataBase</a> parquetTableMetadata)</code> </td> |
| </tr> |
| <tr id="i5" class="rowColor"> |
| <td class="colFirst"><code>static <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.DateCorruptionStatus.html" title="enum in org.apache.drill.exec.store.parquet">ParquetReaderUtility.DateCorruptionStatus</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#detectCorruptDates-org.apache.parquet.hadoop.metadata.ParquetMetadata-java.util.List-boolean-">detectCorruptDates</a></span>(org.apache.parquet.hadoop.metadata.ParquetMetadata footer, |
| <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>> columns, |
| boolean autoCorrectCorruptDates)</code> |
| <div class="block">Check for corrupted dates in a parquet file.</div> |
| </td> |
| </tr> |
| <tr id="i6" class="altColor"> |
| <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.parquet.column.ColumnDescriptor></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#getColNameToColumnDescriptorMapping-org.apache.parquet.hadoop.metadata.ParquetMetadata-">getColNameToColumnDescriptorMapping</a></span>(org.apache.parquet.hadoop.metadata.ParquetMetadata footer)</code> |
| <div class="block">Map full column paths to all ColumnDescriptors in file schema</div> |
| </td> |
| </tr> |
| <tr id="i7" class="rowColor"> |
| <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.parquet.format.SchemaElement></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#getColNameToSchemaElementMapping-org.apache.parquet.hadoop.metadata.ParquetMetadata-">getColNameToSchemaElementMapping</a></span>(org.apache.parquet.hadoop.metadata.ParquetMetadata footer)</code> |
| <div class="block">Map full schema paths in format `a`.`b`.`c` to respective SchemaElement objects.</div> |
| </td> |
| </tr> |
| <tr id="i8" class="altColor"> |
| <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#getComplexTypes-java.util.List-">getComplexTypes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.parquet.schema.OriginalType> originalTypes)</code> |
| <div class="block">Converts list of <code>OriginalType</code>s to list of <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types"><code>TypeProtos.MajorType</code></a>s.</div> |
| </td> |
| </tr> |
| <tr id="i9" class="rowColor"> |
| <td class="colFirst"><code>static <a href="../../../../../../org/apache/drill/common/types/TypeProtos.DataMode.html" title="enum in org.apache.drill.common.types">TypeProtos.DataMode</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#getDataMode-org.apache.parquet.schema.Type.Repetition-">getDataMode</a></span>(org.apache.parquet.schema.Type.Repetition repetition)</code> |
| <div class="block">Converts Parquet's <code>Type.Repetition</code> to Drill's <code>TypeProtos.DataMode</code>.</div> |
| </td> |
| </tr> |
| <tr id="i10" class="altColor"> |
| <td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#getFullColumnPath-org.apache.parquet.column.ColumnDescriptor-">getFullColumnPath</a></span>(org.apache.parquet.column.ColumnDescriptor column)</code> |
| <div class="block">generate full path of the column in format `a`.`b`.`c`</div> |
| </td> |
| </tr> |
| <tr id="i11" class="rowColor"> |
| <td class="colFirst"><code>static int</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#getIntFromLEBytes-byte:A-int-">getIntFromLEBytes</a></span>(byte[] input, |
| int start)</code> </td> |
| </tr> |
| <tr id="i12" class="altColor"> |
| <td class="colFirst"><code>static <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MinorType.html" title="enum in org.apache.drill.common.types">TypeProtos.MinorType</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#getMinorType-org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName-org.apache.parquet.schema.OriginalType-">getMinorType</a></span>(org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName type, |
| org.apache.parquet.schema.OriginalType originalType)</code> |
| <div class="block">Builds minor type using given <code>OriginalType originalType</code> or <code>PrimitiveTypeName type</code>.</div> |
| </td> |
| </tr> |
| <tr id="i13" class="rowColor"> |
| <td class="colFirst"><code>static <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a></code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#getType-org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName-org.apache.parquet.schema.OriginalType-int-int-">getType</a></span>(org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName type, |
| org.apache.parquet.schema.OriginalType originalType, |
| int precision, |
| int scale)</code> |
| <div class="block">Builds major type using given <code>OriginalType originalType</code> or <code>PrimitiveTypeName type</code>.</div> |
| </td> |
| </tr> |
| <tr id="i14" class="altColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#isLogicalListType-org.apache.parquet.schema.GroupType-">isLogicalListType</a></span>(org.apache.parquet.schema.GroupType groupType)</code> |
| <div class="block">Checks whether group field approximately matches pattern for Logical Lists:</div> |
| </td> |
| </tr> |
| <tr id="i15" class="rowColor"> |
| <td class="colFirst"><code>static boolean</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#isLogicalMapType-org.apache.parquet.schema.GroupType-">isLogicalMapType</a></span>(org.apache.parquet.schema.GroupType groupType)</code> |
| <div class="block">Checks whether group field matches pattern for Logical Map type:</div> |
| </td> |
| </tr> |
| <tr id="i16" class="altColor"> |
| <td class="colFirst"><code>static void</code></td> |
| <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#transformBinaryInMetadataCache-org.apache.drill.exec.store.parquet.metadata.MetadataBase.ParquetTableMetadataBase-org.apache.drill.exec.store.parquet.ParquetReaderConfig-">transformBinaryInMetadataCache</a></span>(<a href="../../../../../../org/apache/drill/exec/store/parquet/metadata/MetadataBase.ParquetTableMetadataBase.html" title="class in org.apache.drill.exec.store.parquet.metadata">MetadataBase.ParquetTableMetadataBase</a> parquetTableMetadata, |
| <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderConfig.html" title="class in org.apache.drill.exec.store.parquet">ParquetReaderConfig</a> readerConfig)</code> |
| <div class="block">Transforms values for min / max binary statistics to byte array.</div> |
| </td> |
| </tr> |
| </table> |
| <ul class="blockList"> |
| <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> |
| <!-- --> |
| </a> |
| <h3>Methods inherited from class java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> |
| <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| <div class="details"> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <!-- ============ FIELD DETAIL =========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="field.detail"> |
| <!-- --> |
| </a> |
| <h3>Field Detail</h3> |
| <a name="JULIAN_DAY_NUMBER_FOR_UNIX_EPOCH"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>JULIAN_DAY_NUMBER_FOR_UNIX_EPOCH</h4> |
| <pre>public static final long JULIAN_DAY_NUMBER_FOR_UNIX_EPOCH</pre> |
| <div class="block">Number of days between Julian day epoch (January 1, 4713 BC) and Unix day epoch (January 1, 1970). |
| The value of this constant is 2440588L.</div> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../../constant-values.html#org.apache.drill.exec.store.parquet.ParquetReaderUtility.JULIAN_DAY_NUMBER_FOR_UNIX_EPOCH">Constant Field Values</a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="CORRECT_CORRUPT_DATE_SHIFT"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>CORRECT_CORRUPT_DATE_SHIFT</h4> |
| <pre>public static final long CORRECT_CORRUPT_DATE_SHIFT</pre> |
| <div class="block">All old parquet files (which haven't "is.date.correct=true" or "parquet-writer.version" properties |
| in metadata) have a corrupt date shift: 4881176L days or 2 * <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#JULIAN_DAY_NUMBER_FOR_UNIX_EPOCH">2440588L</a></div> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../../constant-values.html#org.apache.drill.exec.store.parquet.ParquetReaderUtility.CORRECT_CORRUPT_DATE_SHIFT">Constant Field Values</a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="DATE_CORRUPTION_THRESHOLD"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>DATE_CORRUPTION_THRESHOLD</h4> |
| <pre>public static final int DATE_CORRUPTION_THRESHOLD</pre> |
| <div class="block">The year 5000 (or 1106685 day from Unix epoch) is chosen as the threshold for auto-detecting date corruption. |
| This balances two possible cases of bad auto-correction. External tools writing dates in the future will not |
| be shifted unless they are past this threshold (and we cannot identify them as external files based on the metadata). |
| On the other hand, historical dates written with Drill wouldn't risk being incorrectly shifted unless they were |
| something like 10,000 years in the past.</div> |
| </li> |
| </ul> |
| <a name="DRILL_WRITER_VERSION_STD_DATE_FORMAT"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>DRILL_WRITER_VERSION_STD_DATE_FORMAT</h4> |
| <pre>public static final int DRILL_WRITER_VERSION_STD_DATE_FORMAT</pre> |
| <div class="block">Version 2 (and later) of the Drill Parquet writer uses the date format described in the |
| <a href="https://github.com/Parquet/parquet-format/blob/master/LogicalTypes.md#date">Parquet spec</a>. |
| Prior versions had dates formatted with <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#CORRECT_CORRUPT_DATE_SHIFT"><code>CORRECT_CORRUPT_DATE_SHIFT</code></a></div> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../../constant-values.html#org.apache.drill.exec.store.parquet.ParquetReaderUtility.DRILL_WRITER_VERSION_STD_DATE_FORMAT">Constant Field Values</a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="ALLOWED_DRILL_VERSION_FOR_BINARY"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>ALLOWED_DRILL_VERSION_FOR_BINARY</h4> |
| <pre>public static final <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ALLOWED_DRILL_VERSION_FOR_BINARY</pre> |
| <dl> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="../../../../../../constant-values.html#org.apache.drill.exec.store.parquet.ParquetReaderUtility.ALLOWED_DRILL_VERSION_FOR_BINARY">Constant Field Values</a></dd> |
| </dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <!-- ========= CONSTRUCTOR DETAIL ======== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="constructor.detail"> |
| <!-- --> |
| </a> |
| <h3>Constructor Detail</h3> |
| <a name="ParquetReaderUtility--"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>ParquetReaderUtility</h4> |
| <pre>public ParquetReaderUtility()</pre> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| <!-- ============ METHOD DETAIL ========== --> |
| <ul class="blockList"> |
| <li class="blockList"><a name="method.detail"> |
| <!-- --> |
| </a> |
| <h3>Method Detail</h3> |
| <a name="checkDecimalTypeEnabled-org.apache.drill.exec.server.options.OptionManager-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>checkDecimalTypeEnabled</h4> |
| <pre>public static void checkDecimalTypeEnabled(<a href="../../../../../../org/apache/drill/exec/server/options/OptionManager.html" title="interface in org.apache.drill.exec.server.options">OptionManager</a> options)</pre> |
| </li> |
| </ul> |
| <a name="getIntFromLEBytes-byte:A-int-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getIntFromLEBytes</h4> |
| <pre>public static int getIntFromLEBytes(byte[] input, |
| int start)</pre> |
| </li> |
| </ul> |
| <a name="getColNameToSchemaElementMapping-org.apache.parquet.hadoop.metadata.ParquetMetadata-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getColNameToSchemaElementMapping</h4> |
| <pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.parquet.format.SchemaElement> getColNameToSchemaElementMapping(org.apache.parquet.hadoop.metadata.ParquetMetadata footer)</pre> |
| <div class="block">Map full schema paths in format `a`.`b`.`c` to respective SchemaElement objects.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>footer</code> - Parquet file metadata</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>schema full path to SchemaElement map</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getFullColumnPath-org.apache.parquet.column.ColumnDescriptor-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getFullColumnPath</h4> |
| <pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getFullColumnPath(org.apache.parquet.column.ColumnDescriptor column)</pre> |
| <div class="block">generate full path of the column in format `a`.`b`.`c`</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>column</code> - ColumnDescriptor object</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>full path in format `a`.`b`.`c`</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getColNameToColumnDescriptorMapping-org.apache.parquet.hadoop.metadata.ParquetMetadata-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getColNameToColumnDescriptorMapping</h4> |
| <pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.parquet.column.ColumnDescriptor> getColNameToColumnDescriptorMapping(org.apache.parquet.hadoop.metadata.ParquetMetadata footer)</pre> |
| <div class="block">Map full column paths to all ColumnDescriptors in file schema</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>footer</code> - Parquet file metadata</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>column full path to ColumnDescriptor object map</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="autoCorrectCorruptedDate-int-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>autoCorrectCorruptedDate</h4> |
| <pre>public static int autoCorrectCorruptedDate(int corruptedDate)</pre> |
| </li> |
| </ul> |
| <a name="correctDatesInMetadataCache-org.apache.drill.exec.store.parquet.metadata.MetadataBase.ParquetTableMetadataBase-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>correctDatesInMetadataCache</h4> |
| <pre>public static void correctDatesInMetadataCache(<a href="../../../../../../org/apache/drill/exec/store/parquet/metadata/MetadataBase.ParquetTableMetadataBase.html" title="class in org.apache.drill.exec.store.parquet.metadata">MetadataBase.ParquetTableMetadataBase</a> parquetTableMetadata)</pre> |
| </li> |
| </ul> |
| <a name="transformBinaryInMetadataCache-org.apache.drill.exec.store.parquet.metadata.MetadataBase.ParquetTableMetadataBase-org.apache.drill.exec.store.parquet.ParquetReaderConfig-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>transformBinaryInMetadataCache</h4> |
| <pre>public static void transformBinaryInMetadataCache(<a href="../../../../../../org/apache/drill/exec/store/parquet/metadata/MetadataBase.ParquetTableMetadataBase.html" title="class in org.apache.drill.exec.store.parquet.metadata">MetadataBase.ParquetTableMetadataBase</a> parquetTableMetadata, |
| <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderConfig.html" title="class in org.apache.drill.exec.store.parquet">ParquetReaderConfig</a> readerConfig)</pre> |
| <div class="block">Transforms values for min / max binary statistics to byte array. |
| Transformation logic depends on metadata file version.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>parquetTableMetadata</code> - table metadata that should be corrected</dd> |
| <dd><code>readerConfig</code> - parquet reader config</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="detectCorruptDates-org.apache.parquet.hadoop.metadata.ParquetMetadata-java.util.List-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>detectCorruptDates</h4> |
| <pre>public static <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.DateCorruptionStatus.html" title="enum in org.apache.drill.exec.store.parquet">ParquetReaderUtility.DateCorruptionStatus</a> detectCorruptDates(org.apache.parquet.hadoop.metadata.ParquetMetadata footer, |
| <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>> columns, |
| boolean autoCorrectCorruptDates)</pre> |
| <div class="block">Check for corrupted dates in a parquet file. See Drill-4203</div> |
| </li> |
| </ul> |
| <a name="checkForCorruptDateValuesInStatistics-org.apache.parquet.hadoop.metadata.ParquetMetadata-java.util.List-boolean-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>checkForCorruptDateValuesInStatistics</h4> |
| <pre>public static <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.DateCorruptionStatus.html" title="enum in org.apache.drill.exec.store.parquet">ParquetReaderUtility.DateCorruptionStatus</a> checkForCorruptDateValuesInStatistics(org.apache.parquet.hadoop.metadata.ParquetMetadata footer, |
| <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>> columns, |
| boolean autoCorrectCorruptDates)</pre> |
| <div class="block">Detect corrupt date values by looking at the min/max values in the metadata. |
| |
| This should only be used when a file does not have enough metadata to determine if |
| the data was written with an external tool or an older version of Drill |
| (<a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetRecordWriter.html#WRITER_VERSION_PROPERTY"><code>ParquetRecordWriter.WRITER_VERSION_PROPERTY</code></a> < |
| <a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.html#DRILL_WRITER_VERSION_STD_DATE_FORMAT"><code>DRILL_WRITER_VERSION_STD_DATE_FORMAT</code></a>) |
| |
| This method only checks the first Row Group, because Drill has only ever written |
| a single Row Group per file.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>footer</code> - parquet footer</dd> |
| <dd><code>columns</code> - list of columns schema path</dd> |
| <dd><code>autoCorrectCorruptDates</code> - user setting to allow enabling/disabling of auto-correction |
| of corrupt dates. There are some rare cases (storing dates thousands |
| of years into the future, with tools other than Drill writing files) |
| that would result in the date values being "corrected" into bad values.</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getType-org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName-org.apache.parquet.schema.OriginalType-int-int-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getType</h4> |
| <pre>public static <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a> getType(org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName type, |
| org.apache.parquet.schema.OriginalType originalType, |
| int precision, |
| int scale)</pre> |
| <div class="block">Builds major type using given <code>OriginalType originalType</code> or <code>PrimitiveTypeName type</code>. |
| For DECIMAL will be returned major type with scale and precision.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>type</code> - parquet primitive type</dd> |
| <dd><code>originalType</code> - parquet original type</dd> |
| <dd><code>scale</code> - type scale (used for DECIMAL type)</dd> |
| <dd><code>precision</code> - type precision (used for DECIMAL type)</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>major type</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getMinorType-org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName-org.apache.parquet.schema.OriginalType-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getMinorType</h4> |
| <pre>public static <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MinorType.html" title="enum in org.apache.drill.common.types">TypeProtos.MinorType</a> getMinorType(org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName type, |
| org.apache.parquet.schema.OriginalType originalType)</pre> |
| <div class="block">Builds minor type using given <code>OriginalType originalType</code> or <code>PrimitiveTypeName type</code>.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>type</code> - parquet primitive type</dd> |
| <dd><code>originalType</code> - parquet original type</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>minor type</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="containsComplexColumn-org.apache.parquet.hadoop.metadata.ParquetMetadata-java.util.List-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>containsComplexColumn</h4> |
| <pre>public static boolean containsComplexColumn(org.apache.parquet.hadoop.metadata.ParquetMetadata footer, |
| <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/drill/common/expression/SchemaPath.html" title="class in org.apache.drill.common.expression">SchemaPath</a>> columns)</pre> |
| <div class="block">Check whether any of columns in the given list is either nested or repetitive.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>footer</code> - Parquet file schema</dd> |
| <dd><code>columns</code> - list of query SchemaPath objects</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getComplexTypes-java.util.List-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>getComplexTypes</h4> |
| <pre>public static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types">TypeProtos.MajorType</a>> getComplexTypes(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><org.apache.parquet.schema.OriginalType> originalTypes)</pre> |
| <div class="block">Converts list of <code>OriginalType</code>s to list of <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MajorType.html" title="class in org.apache.drill.common.types"><code>TypeProtos.MajorType</code></a>s. |
| <b>NOTE</b>: current implementation cares about <code>OriginalType.MAP</code> and <code>OriginalType.LIST</code> only |
| converting it to <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MinorType.html#DICT"><code>TypeProtos.MinorType.DICT</code></a> |
| and <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MinorType.html#LIST"><code>TypeProtos.MinorType.LIST</code></a> respectively. |
| Other original types are converted to <code>null</code>, because there is no certain correspondence |
| (and, actually, a need because these types are used to differentiate between Drill's MAP and DICT (and arrays of thereof) types |
| when constructing <a href="../../../../../../org/apache/drill/exec/record/metadata/TupleSchema.html" title="class in org.apache.drill.exec.record.metadata"><code>TupleSchema</code></a>) between these two.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>originalTypes</code> - list of Parquet's types</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>list containing either <code>null</code> or type with minor |
| type <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MinorType.html#DICT"><code>TypeProtos.MinorType.DICT</code></a> or |
| <a href="../../../../../../org/apache/drill/common/types/TypeProtos.MinorType.html#LIST"><code>TypeProtos.MinorType.LIST</code></a> values</dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="isLogicalListType-org.apache.parquet.schema.GroupType-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isLogicalListType</h4> |
| <pre>public static boolean isLogicalListType(org.apache.parquet.schema.GroupType groupType)</pre> |
| <div class="block">Checks whether group field approximately matches pattern for Logical Lists: |
| <pre> |
| <list-repetition> group <name> (LIST) { |
| repeated group list { |
| <element-repetition> <element-type> element; |
| } |
| } |
| </pre> |
| (See for more details: https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#lists) |
| |
| Note, that standard field names 'list' and 'element' aren't checked intentionally, |
| because Hive lists have 'bag' and 'array_element' names instead.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>groupType</code> - type which may have LIST original type</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>whether the type is LIST and nested field is repeated group</dd> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#lists">Parquet List logical type</a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="isLogicalMapType-org.apache.parquet.schema.GroupType-"> |
| <!-- --> |
| </a> |
| <ul class="blockList"> |
| <li class="blockList"> |
| <h4>isLogicalMapType</h4> |
| <pre>public static boolean isLogicalMapType(org.apache.parquet.schema.GroupType groupType)</pre> |
| <div class="block">Checks whether group field matches pattern for Logical Map type: |
| |
| <pre> |
| <map-repetition> group <name> (MAP) { |
| repeated group key_value { |
| required <key-type> key; |
| <value-repetition> <value-type> value; |
| } |
| } |
| </pre> |
| |
| Note, that actual group names are not checked specifically.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>groupType</code> - parquet type which may be of MAP type</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>whether the type is MAP</dd> |
| <dt><span class="seeLabel">See Also:</span></dt> |
| <dd><a href="https://github.com/apache/parquet-format/blob/master/LogicalTypes.md#maps">Parquet Map logical type</a></dd> |
| </dl> |
| </li> |
| </ul> |
| <a name="getDataMode-org.apache.parquet.schema.Type.Repetition-"> |
| <!-- --> |
| </a> |
| <ul class="blockListLast"> |
| <li class="blockList"> |
| <h4>getDataMode</h4> |
| <pre>public static <a href="../../../../../../org/apache/drill/common/types/TypeProtos.DataMode.html" title="enum in org.apache.drill.common.types">TypeProtos.DataMode</a> getDataMode(org.apache.parquet.schema.Type.Repetition repetition)</pre> |
| <div class="block">Converts Parquet's <code>Type.Repetition</code> to Drill's <code>TypeProtos.DataMode</code>.</div> |
| <dl> |
| <dt><span class="paramLabel">Parameters:</span></dt> |
| <dd><code>repetition</code> - repetition to be converted</dd> |
| <dt><span class="returnLabel">Returns:</span></dt> |
| <dd>data mode corresponding to Parquet's repetition</dd> |
| </dl> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| <!-- ========= END OF CLASS DATA ========= --> |
| <!-- ======= START OF BOTTOM NAVBAR ====== --> |
| <div class="bottomNav"><a name="navbar.bottom"> |
| <!-- --> |
| </a> |
| <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> |
| <a name="navbar.bottom.firstrow"> |
| <!-- --> |
| </a> |
| <ul class="navList" title="Navigation"> |
| <li><a href="../../../../../../overview-summary.html">Overview</a></li> |
| <li><a href="package-summary.html">Package</a></li> |
| <li class="navBarCell1Rev">Class</li> |
| <li><a href="class-use/ParquetReaderUtility.html">Use</a></li> |
| <li><a href="package-tree.html">Tree</a></li> |
| <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li> |
| <li><a href="../../../../../../index-all.html">Index</a></li> |
| <li><a href="../../../../../../help-doc.html">Help</a></li> |
| </ul> |
| </div> |
| <div class="subNav"> |
| <ul class="navList"> |
| <li><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderStats.html" title="class in org.apache.drill.exec.store.parquet"><span class="typeNameLink">Prev Class</span></a></li> |
| <li><a href="../../../../../../org/apache/drill/exec/store/parquet/ParquetReaderUtility.DateCorruptionStatus.html" title="enum in org.apache.drill.exec.store.parquet"><span class="typeNameLink">Next Class</span></a></li> |
| </ul> |
| <ul class="navList"> |
| <li><a href="../../../../../../index.html?org/apache/drill/exec/store/parquet/ParquetReaderUtility.html" target="_top">Frames</a></li> |
| <li><a href="ParquetReaderUtility.html" target="_top">No Frames</a></li> |
| </ul> |
| <ul class="navList" id="allclasses_navbar_bottom"> |
| <li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li> |
| </ul> |
| <div> |
| <script type="text/javascript"><!-- |
| allClassesLink = document.getElementById("allclasses_navbar_bottom"); |
| if(window==top) { |
| allClassesLink.style.display = "block"; |
| } |
| else { |
| allClassesLink.style.display = "none"; |
| } |
| //--> |
| </script> |
| </div> |
| <div> |
| <ul class="subNavList"> |
| <li>Summary: </li> |
| <li><a href="#nested.class.summary">Nested</a> | </li> |
| <li><a href="#field.summary">Field</a> | </li> |
| <li><a href="#constructor.summary">Constr</a> | </li> |
| <li><a href="#method.summary">Method</a></li> |
| </ul> |
| <ul class="subNavList"> |
| <li>Detail: </li> |
| <li><a href="#field.detail">Field</a> | </li> |
| <li><a href="#constructor.detail">Constr</a> | </li> |
| <li><a href="#method.detail">Method</a></li> |
| </ul> |
| </div> |
| <a name="skip.navbar.bottom"> |
| <!-- --> |
| </a></div> |
| <!-- ======== END OF BOTTOM NAVBAR ======= --> |
| <p class="legalCopy"><small>Copyright © 1970 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> |
| </body> |
| </html> |