Skip to content

Commit 31f8a1c

Browse files
authored
HIVE-29649: Iceberg: Support Parquet DECIMAL_64 vectorization (#6527)
1 parent 94af009 commit 31f8a1c

106 files changed

Lines changed: 1200 additions & 608 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/BaseHiveIcebergMetaHook.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ public class BaseHiveIcebergMetaHook implements HiveMetaHook {
9292
);
9393
private static final Set<String> PARAMETERS_TO_REMOVE = ImmutableSet
9494
.of(InputFormatConfig.TABLE_SCHEMA, Catalogs.LOCATION, Catalogs.NAME, InputFormatConfig.PARTITION_SPEC);
95-
static final String ORC_FILES_ONLY = "iceberg.orc.files.only";
9695
private static final String ZORDER_FIELDS_JSON_KEY = "zorderFields";
9796

9897
protected final Configuration conf;
@@ -214,8 +213,6 @@ public void preCreateTable(CreateTableRequest request) {
214213

215214
assertFileFormat(tableProperties.getProperty(TableProperties.DEFAULT_FILE_FORMAT));
216215

217-
// Set whether the format is ORC, to be used during vectorization.
218-
setOrcOnlyFilesParam(hmsTable);
219216
// Remove hive primary key columns from table request, as iceberg doesn't support hive primary key.
220217
request.setPrimaryKeys(null);
221218
setSortOrder(hmsTable, schema, tableProperties);
@@ -485,14 +482,6 @@ protected static PartitionSpec spec(Configuration configuration, Schema schema,
485482
return HMSTablePropertyHelper.getPartitionSpec(hmsTable.getParameters(), schema);
486483
}
487484

488-
protected void setOrcOnlyFilesParam(org.apache.hadoop.hive.metastore.api.Table hmsTable) {
489-
hmsTable.getParameters().put(ORC_FILES_ONLY, String.valueOf(isOrcOnlyFiles(hmsTable)));
490-
}
491-
492-
protected boolean isOrcOnlyFiles(org.apache.hadoop.hive.metastore.api.Table hmsTable) {
493-
return !"FALSE".equalsIgnoreCase(hmsTable.getParameters().get(ORC_FILES_ONLY)) && isOrcFileFormat(hmsTable);
494-
}
495-
496485
static boolean isOrcFileFormat(org.apache.hadoop.hive.metastore.api.Table hmsTable) {
497486
return hmsTable.getSd().getInputFormat() != null && hmsTable.getSd().getInputFormat().toUpperCase()
498487
.contains(org.apache.iceberg.FileFormat.ORC.name()) || org.apache.iceberg.FileFormat.ORC.name()

iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergInputFormat.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import org.apache.hadoop.mapred.RecordReader;
4747
import org.apache.hadoop.mapred.Reporter;
4848
import org.apache.iceberg.FileScanTask;
49-
import org.apache.iceberg.TableProperties;
5049
import org.apache.iceberg.data.Record;
5150
import org.apache.iceberg.expressions.Expression;
5251
import org.apache.iceberg.expressions.Expressions;
@@ -69,7 +68,7 @@ public class HiveIcebergInputFormat extends MapredIcebergInputFormat<Record>
6968
LlapCacheOnlyInputFormatInterface.VectorizedOnly {
7069

7170
private static final Logger LOG = LoggerFactory.getLogger(HiveIcebergInputFormat.class);
72-
public static final String ICEBERG_DISABLE_VECTORIZATION_PREFIX = "iceberg.disable.vectorization.";
71+
public static final String ICEBERG_DISABLE_DECIMAL64_PREFIX = "iceberg.disable.decimal64.";
7372

7473
/**
7574
* Encapsulates planning-time and reader-time Iceberg filter expressions derived from Hive predicates.
@@ -249,16 +248,17 @@ public VectorizedSupport.Support[] getSupportedFeatures() {
249248

250249
@Override
251250
public VectorizedSupport.Support[] getSupportedFeatures(HiveConf hiveConf, TableDesc tableDesc) {
252-
// disabling VectorizedSupport.Support.DECIMAL_64 for Parquet as it doesn't support it
253-
boolean isORCOnly =
254-
Boolean.parseBoolean(tableDesc.getProperties().getProperty(HiveIcebergMetaHook.DECIMAL64_VECTORIZATION)) &&
255-
Boolean.parseBoolean(tableDesc.getProperties().getProperty(HiveIcebergMetaHook.ORC_FILES_ONLY)) &&
256-
org.apache.iceberg.FileFormat.ORC.name()
257-
.equalsIgnoreCase(tableDesc.getProperties().getProperty(TableProperties.DEFAULT_FILE_FORMAT));
258-
if (!isORCOnly) {
259-
final String vectorizationConfName = getVectorizationConfName(tableDesc.getTableName());
260-
LOG.debug("Setting {} for table: {} to true", vectorizationConfName, tableDesc.getTableName());
261-
hiveConf.set(vectorizationConfName, "true");
251+
// Both vectorizable file formats (ORC and Parquet) now support DECIMAL_64 reads, so advertise it
252+
// whenever decimal64 vectorization is enabled for the table, regardless of file format.
253+
boolean decimal64Enabled =
254+
Boolean.parseBoolean(tableDesc.getProperty(HiveIcebergMetaHook.DECIMAL64_VECTORIZATION));
255+
if (!decimal64Enabled) {
256+
// Keep the LLAP ORC reader from emitting decimal64 so it stays consistent with the full-decimal
257+
// operator pipeline; consumed in HiveVectorizedReader#orcRecordReader.
258+
final String decimal64DisableConfName = getDecimal64DisableConfName(tableDesc.getTableName());
259+
LOG.debug("Setting {} for table: {} to true", decimal64DisableConfName, tableDesc.getTableName());
260+
hiveConf.set(decimal64DisableConfName, "true");
261+
262262
return new VectorizedSupport.Support[] {};
263263
}
264264
return new VectorizedSupport.Support[] { VectorizedSupport.Support.DECIMAL_64 };
@@ -269,9 +269,9 @@ public void injectCaches(FileMetadataCache metadataCache, DataCache dataCache, C
269269
// no-op for Iceberg
270270
}
271271

272-
public static String getVectorizationConfName(String tableName) {
272+
public static String getDecimal64DisableConfName(String tableName) {
273273
String dbAndTableName = TableName.fromString(tableName, null, null).getNotEmptyDbTable();
274-
return ICEBERG_DISABLE_VECTORIZATION_PREFIX + dbAndTableName;
274+
return ICEBERG_DISABLE_DECIMAL64_PREFIX + dbAndTableName;
275275
}
276276

277277
@Override

iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/HiveIcebergMetaHook.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -321,8 +321,6 @@ private void doPreAlterTable(org.apache.hadoop.hive.metastore.api.Table hmsTable
321321
// If so, we will create the iceberg table in commitAlterTable and go ahead with the migration
322322
assertTableCanBeMigrated(hmsTable);
323323
isTableMigration = true;
324-
// Set whether the format is ORC, to be used during vectorization.
325-
setOrcOnlyFilesParam(hmsTable);
326324

327325
StorageDescriptor sd = hmsTable.getSd();
328326
preAlterTableProperties = new PreAlterTableProperties();
@@ -385,13 +383,6 @@ private void doPreAlterTable(org.apache.hadoop.hive.metastore.api.Table hmsTable
385383
assertNotCrossTableMetadataLocationChange(hmsTable.getParameters(), context);
386384
}
387385

388-
// Migration case is already handled above, in case of migration we don't have all the properties set till this
389-
// point.
390-
if (!isTableMigration) {
391-
// Set whether the format is ORC, to be used during vectorization.
392-
setOrcOnlyFilesParam(hmsTable);
393-
}
394-
395386
}
396387

397388
/**

iceberg/iceberg-handler/src/main/java/org/apache/iceberg/mr/hive/vector/HiveVectorizedReader.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,11 @@ private static RecordReader<NullWritable, VectorizedRowBatch> orcRecordReader(Jo
213213
// TODO: add support for reading files with positional deletes with LLAP (LLAP would need to provide file row num)
214214
if (HiveConf.getBoolVar(job, HiveConf.ConfVars.LLAP_IO_ENABLED, LlapProxy.isDaemon()) &&
215215
LlapProxy.getIo() != null && task.deletes().isEmpty() && !InputFormatConfig.fetchVirtualColumns(job)) {
216-
boolean isDisableVectorization =
217-
job.getBoolean(HiveIcebergInputFormat.getVectorizationConfName(tableName), false);
218-
if (isDisableVectorization) {
219-
// Required to prevent LLAP from dealing with decimal64, HiveIcebergInputFormat.getSupportedFeatures()
216+
boolean isDecimal64Disabled =
217+
job.getBoolean(HiveIcebergInputFormat.getDecimal64DisableConfName(tableName), false);
218+
if (isDecimal64Disabled) {
219+
// The LLAP ORC reader derives decimal64 support from this job var, not the plan; clear it so
220+
// it emits full decimal instead.
220221
HiveConf.setVar(job, HiveConf.ConfVars.HIVE_VECTORIZED_INPUT_FORMAT_SUPPORTS_ENABLED, "");
221222
}
222223
recordReader = LlapProxy.getIo().llapVectorizedOrcReaderForPath(fileId, path, null, readColumnIds,

iceberg/iceberg-handler/src/test/queries/positive/vectorized_iceberg_read_multitable.q

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ insert into customer_ice values (10);
1111
create external table orders(o_orderkey int, o_custkey int) stored as orc;
1212
insert into orders values (10, 10);
1313

14-
alter table customer_ice set tblproperties ( 'iceberg.orc.files.only' = 'false');
15-
1614
select sum(1 - l_discount) as revenue
1715
FROM customer_ice, orders, lineitem
1816
WHERE c_custkey = o_custkey and l_orderkey = o_orderkey limit 20;
@@ -21,16 +19,6 @@ create external table lineitem_ice(l_discount decimal(15,2), l_orderkey int) STO
2119
TBLPROPERTIES ('iceberg.decimal64.vectorization'='true');
2220
insert into lineitem_ice values (100.2, 10);
2321

24-
select sum(1 - l_discount) as revenue
25-
FROM customer_ice, orders, lineitem_ice
26-
WHERE c_custkey = o_custkey and l_orderkey = o_orderkey limit 20;
27-
28-
alter table customer_ice set tblproperties ( 'iceberg.orc.files.only' = 'true');
29-
30-
select sum(1 - l_discount) as revenue
31-
FROM customer_ice, orders, lineitem
32-
WHERE c_custkey = o_custkey and l_orderkey = o_orderkey limit 20;
33-
3422
select sum(1 - l_discount) as revenue
3523
FROM customer_ice, orders, lineitem_ice
3624
WHERE c_custkey = o_custkey and l_orderkey = o_orderkey limit 20;

iceberg/iceberg-handler/src/test/results/positive/alter_multi_part_table_to_iceberg.q.out

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,6 @@ Table Parameters:
206206
current-snapshot-timestamp-ms #Masked#
207207
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001}]}
208208
format-version 2
209-
iceberg.orc.files.only true
210209
#### A masked pattern was here ####
211210
metadata_location hdfs://### HDFS PATH ###
212211
numFiles 7
@@ -482,7 +481,6 @@ Table Parameters:
482481
current-snapshot-timestamp-ms #Masked#
483482
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001}]}
484483
format-version 2
485-
iceberg.orc.files.only false
486484
#### A masked pattern was here ####
487485
metadata_location hdfs://### HDFS PATH ###
488486
numFiles 7
@@ -758,7 +756,6 @@ Table Parameters:
758756
current-snapshot-timestamp-ms #Masked#
759757
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001}]}
760758
format-version 2
761-
iceberg.orc.files.only false
762759
#### A masked pattern was here ####
763760
metadata_location hdfs://### HDFS PATH ###
764761
numFiles 7
@@ -1098,7 +1095,6 @@ Table Parameters:
10981095
current-snapshot-timestamp-ms #Masked#
10991096
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001},{\"name\":\"d\",\"transform\":\"identity\",\"source-id\":4,\"field-id\":1002}]}
11001097
format-version 2
1101-
iceberg.orc.files.only true
11021098
#### A masked pattern was here ####
11031099
metadata_location hdfs://### HDFS PATH ###
11041100
numFiles 10
@@ -1545,7 +1541,6 @@ Table Parameters:
15451541
current-snapshot-timestamp-ms #Masked#
15461542
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001},{\"name\":\"d\",\"transform\":\"identity\",\"source-id\":4,\"field-id\":1002}]}
15471543
format-version 2
1548-
iceberg.orc.files.only false
15491544
#### A masked pattern was here ####
15501545
metadata_location hdfs://### HDFS PATH ###
15511546
numFiles 10
@@ -1992,7 +1987,6 @@ Table Parameters:
19921987
current-snapshot-timestamp-ms #Masked#
19931988
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000},{\"name\":\"c\",\"transform\":\"identity\",\"source-id\":3,\"field-id\":1001},{\"name\":\"d\",\"transform\":\"identity\",\"source-id\":4,\"field-id\":1002}]}
19941989
format-version 2
1995-
iceberg.orc.files.only false
19961990
#### A masked pattern was here ####
19971991
metadata_location hdfs://### HDFS PATH ###
19981992
numFiles 10

iceberg/iceberg-handler/src/test/results/positive/alter_part_table_to_iceberg.q.out

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ Table Parameters:
163163
current-snapshot-timestamp-ms #Masked#
164164
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000}]}
165165
format-version 2
166-
iceberg.orc.files.only true
167166
#### A masked pattern was here ####
168167
metadata_location hdfs://### HDFS PATH ###
169168
numFiles 4
@@ -441,7 +440,6 @@ Table Parameters:
441440
current-snapshot-timestamp-ms #Masked#
442441
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000}]}
443442
format-version 2
444-
iceberg.orc.files.only false
445443
#### A masked pattern was here ####
446444
metadata_location hdfs://### HDFS PATH ###
447445
numFiles 7
@@ -796,7 +794,6 @@ Table Parameters:
796794
current-snapshot-timestamp-ms #Masked#
797795
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000}]}
798796
format-version 2
799-
iceberg.orc.files.only false
800797
#### A masked pattern was here ####
801798
metadata_location hdfs://### HDFS PATH ###
802799
numFiles 7
@@ -1151,7 +1148,6 @@ Table Parameters:
11511148
current-snapshot-timestamp-ms #Masked#
11521149
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000}]}
11531150
format-version 2
1154-
iceberg.orc.files.only false
11551151
#### A masked pattern was here ####
11561152
metadata_location hdfs://### HDFS PATH ###
11571153
numFiles 7
@@ -1452,7 +1448,6 @@ Table Parameters:
14521448
current-snapshot-timestamp-ms #Masked#
14531449
default-partition-spec {\"spec-id\":0,\"fields\":[{\"name\":\"b\",\"transform\":\"identity\",\"source-id\":2,\"field-id\":1000}]}
14541450
format-version 2
1455-
iceberg.orc.files.only false
14561451
#### A masked pattern was here ####
14571452
metadata_location hdfs://### HDFS PATH ###
14581453
numFiles 4

iceberg/iceberg-handler/src/test/results/positive/alter_table_to_iceberg.q.out

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ Table Parameters:
113113
current-snapshot-summary {\"added-data-files\":\"1\",\"added-records\":\"5\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"1\",\"total-records\":\"5\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"1\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
114114
current-snapshot-timestamp-ms #Masked#
115115
format-version 2
116-
iceberg.orc.files.only true
117116
#### A masked pattern was here ####
118117
metadata_location hdfs://### HDFS PATH ###
119118
numFiles 1
@@ -284,7 +283,6 @@ Table Parameters:
284283
current-snapshot-summary {\"added-data-files\":\"1\",\"added-records\":\"5\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"1\",\"total-records\":\"5\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"1\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
285284
current-snapshot-timestamp-ms #Masked#
286285
format-version 2
287-
iceberg.orc.files.only false
288286
#### A masked pattern was here ####
289287
metadata_location hdfs://### HDFS PATH ###
290288
numFiles 1
@@ -455,7 +453,6 @@ Table Parameters:
455453
current-snapshot-summary {\"added-data-files\":\"1\",\"added-records\":\"5\",\"added-files-size\":\"#Masked#\",\"changed-partition-count\":\"1\",\"total-records\":\"5\",\"total-files-size\":\"#Masked#\",\"total-data-files\":\"1\",\"total-delete-files\":\"0\",\"total-position-deletes\":\"0\",\"total-equality-deletes\":\"0\",\"iceberg-version\":\"#Masked#\"}
456454
current-snapshot-timestamp-ms #Masked#
457455
format-version 2
458-
iceberg.orc.files.only false
459456
#### A masked pattern was here ####
460457
metadata_location hdfs://### HDFS PATH ###
461458
numFiles 1

iceberg/iceberg-handler/src/test/results/positive/create_iceberg_table.q.out

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ Table Parameters:
3030
bucketing_version 2
3131
current-schema {\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"i\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"s\",\"required\":false,\"type\":\"string\"},{\"id\":3,\"name\":\"ts\",\"required\":false,\"type\":\"timestamp\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"date\"}]}
3232
format-version 2
33-
iceberg.orc.files.only false
3433
metadata_location hdfs://### HDFS PATH ###
3534
numFiles 0
3635
numRows 0

iceberg/iceberg-handler/src/test/results/positive/create_iceberg_table_stored_as_fileformat.q.out

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ Table Parameters:
3636
bucketing_version 2
3737
current-schema {\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"i\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"s\",\"required\":false,\"type\":\"string\"},{\"id\":3,\"name\":\"ts\",\"required\":false,\"type\":\"timestamp\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"date\"}]}
3838
format-version 2
39-
iceberg.orc.files.only true
4039
metadata_location hdfs://### HDFS PATH ###
4140
numFiles 0
4241
numRows 0
@@ -109,7 +108,6 @@ Table Parameters:
109108
bucketing_version 2
110109
current-schema {\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"i\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"s\",\"required\":false,\"type\":\"string\"},{\"id\":3,\"name\":\"ts\",\"required\":false,\"type\":\"timestamp\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"date\"}]}
111110
format-version 2
112-
iceberg.orc.files.only false
113111
metadata_location hdfs://### HDFS PATH ###
114112
numFiles 0
115113
numRows 0
@@ -182,7 +180,6 @@ Table Parameters:
182180
bucketing_version 2
183181
current-schema {\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"i\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"s\",\"required\":false,\"type\":\"string\"},{\"id\":3,\"name\":\"ts\",\"required\":false,\"type\":\"timestamp\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"date\"}]}
184182
format-version 2
185-
iceberg.orc.files.only false
186183
metadata_location hdfs://### HDFS PATH ###
187184
numFiles 0
188185
numRows 0
@@ -255,7 +252,6 @@ Table Parameters:
255252
bucketing_version 2
256253
current-schema {\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"i\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"s\",\"required\":false,\"type\":\"string\"},{\"id\":3,\"name\":\"ts\",\"required\":false,\"type\":\"timestamp\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"date\"}]}
257254
format-version 2
258-
iceberg.orc.files.only false
259255
metadata_location hdfs://### HDFS PATH ###
260256
numFiles 0
261257
numRows 0
@@ -323,7 +319,6 @@ Table Parameters:
323319
current-schema {\"type\":\"struct\",\"schema-id\":0,\"fields\":[{\"id\":1,\"name\":\"i\",\"required\":false,\"type\":\"int\"},{\"id\":2,\"name\":\"s\",\"required\":false,\"type\":\"string\"},{\"id\":3,\"name\":\"ts\",\"required\":false,\"type\":\"timestamp\"},{\"id\":4,\"name\":\"d\",\"required\":false,\"type\":\"date\"}]}
324320
dummy dummy_value
325321
format-version 2
326-
iceberg.orc.files.only true
327322
metadata_location hdfs://### HDFS PATH ###
328323
numFiles 0
329324
numRows 0

0 commit comments

Comments
 (0)