You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by GitBox <gi...@apache.org> on 2022/06/23 01:31:59 UTC

[GitHub] [hudi] Reimus commented on issue #5915: [SUPPORT] Schema Evolution - Changing field type from Date to String is not supported

Reimus commented on issue #5915:
URL: https://github.com/apache/hudi/issues/5915#issuecomment-1163824902

   @minihippo 
   No, just a regular field.
   It was included in the data skipping index though.
   
   Here is a creation / update spark.write commands I'm using to add/save data
   ```
    ds.write
         .format("hudi")
         .mode(SaveMode.Append)
         .option(DataSourceWriteOptions.PRECOMBINE_FIELD.key, "ts")
         .option(DataSourceWriteOptions.RECORDKEY_FIELD.key, "id")
         .option(DataSourceWriteOptions.PARTITIONPATH_FIELD.key, "ym")
         .option(DataSourceWriteOptions.OPERATION.key, DataSourceWriteOptions.UPSERT_OPERATION_OPT_VAL)
         .option(HoodieWriteConfig.TBL_NAME.key, tableName)
         .option(DataSourceWriteOptions.RECONCILE_SCHEMA.key, "true")
         .option(DataSourceWriteOptions.TABLE_TYPE.key, DataSourceWriteOptions.MOR_TABLE_TYPE_OPT_VAL)
         .option(DataSourceWriteOptions.OPERATION.key, DataSourceWriteOptions.UPSERT_OPERATION_OPT_VAL)
         .option(HoodieTableConfig.TIMELINE_TIMEZONE.key, HoodieTimelineTimeZone.UTC.name)
         .option(HoodieWriteConfig.SCHEMA_EVOLUTION_ENABLE.key, "true")
         .option(HoodieWriteConfig.AVRO_SCHEMA_VALIDATE_ENABLE.key, "true")
         .option(HoodieWriteConfig.WRITE_CONCURRENCY_MODE.key, WriteConcurrencyMode.OPTIMISTIC_CONCURRENCY_CONTROL.name())
         .option(HoodieIndexConfig.BLOOM_FILTER_TYPE.key, BloomFilterTypeCode.DYNAMIC_V0.name)
         .option(HoodieIndexConfig.BLOOM_FILTER_NUM_ENTRIES_VALUE.key, String.valueOf(100000))
         .option(HoodieIndexConfig.BLOOM_INDEX_USE_METADATA.key, "true")
         .option(HoodieIndexConfig.BLOOM_INDEX_FILTER_DYNAMIC_MAX_ENTRIES.key, String.valueOf(1000000))
         .option(HoodieLockConfig.HIVE_DATABASE_NAME.key, databaseName)
         .option(HoodieLockConfig.HIVE_TABLE_NAME.key, tableName)
         .option(HoodieLockConfig.HIVE_METASTORE_URI.key, env.spark.hiveMetastore)
         .option(HoodieLockConfig.LOCK_PROVIDER_CLASS_NAME.key, classOf[org.apache.hudi.hive.HiveMetastoreBasedLockProvider].getName)
         .option(HoodieStorageConfig.PARQUET_MAX_FILE_SIZE.key, String.valueOf(256 * 1024 * 1024))
         .option(HoodieStorageConfig.PARQUET_BLOCK_SIZE.key, String.valueOf(256 * 1024 * 1024))
         .option(HoodieCompactionConfig.AUTO_CLEAN.key, "true")
         .option(HoodieCompactionConfig.FAILED_WRITES_CLEANER_POLICY.key, HoodieFailedWritesCleaningPolicy.LAZY.name)
   
         .option(HoodieCompactionConfig.CLEANER_POLICY.key, HoodieCleaningPolicy.KEEP_LATEST_BY_HOURS.name())
         .option(HoodieCompactionConfig.CLEANER_HOURS_RETAINED.key, String.valueOf(24))
         .option(HoodieCompactionConfig.PARQUET_SMALL_FILE_LIMIT.key, String.valueOf(104857600))
   
         .option(HoodieMetadataConfig.COLUMN_STATS_INDEX_FOR_COLUMNS.key, "ym,ymd,date,ts,lvl1.ymd,lvl1.lvl2.date")
         .option(HoodieMetadataConfig.BLOOM_FILTER_INDEX_FOR_COLUMNS.key, "id,col1,col2")
         .option(HoodieMetadataConfig.POPULATE_META_FIELDS.key, "true")
         .option(HoodieMetadataConfig.ENABLE_METADATA_INDEX_COLUMN_STATS.key, "true")
         .option(HoodieMetadataConfig.ENABLE_METADATA_INDEX_BLOOM_FILTER.key, "true")
         .option(HoodieMetadataConfig.ENABLE.key, "true")
         .save("/tmp/hudi")
   ```
   
   Partition field is `ym` field (string) - ymd is a regular date field.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@hudi.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org