Pyspark 无法在Azure DataRicks中创建具有时间戳数据类型的配置单元表

Pyspark 无法在Azure DataRicks中创建具有时间戳数据类型的配置单元表,pyspark,hive,parquet,azure-databricks,Pyspark,Hive,Parquet,Azure Databricks,org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.UnsupportedOperationException:拼花地板不支持 时间戳。见HIVE-6384 在Azure Databricks中执行以下代码时出现上述错误 spark_session.sql(""" CREATE EXTERNAL TABLE IF NOT EXISTS dev_db.proce

org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.UnsupportedOperationException:拼花地板不支持 时间戳。见HIVE-6384

在Azure Databricks中执行以下代码时出现上述错误

spark_session.sql("""
                    CREATE EXTERNAL TABLE IF NOT EXISTS dev_db.processing_table
                    (
                      campaign STRING,
                      status STRING,
                      file_name STRING,
                      arrival_time TIMESTAMP
                    )
                    PARTITIONED BY ( 
                      Date DATE)
                    ROW FORMAT SERDE
                      'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
                    STORED AS INPUTFORMAT
                      'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
                    OUTPUTFORMAT
                      'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
                    LOCATION "/mnt/data_analysis/pre-processed/"
             """)
根据Jira,从Hive-1.2开始,您可以在拼花地板表中使用时间戳、日期类型

蜂巢<1.2版本的变通方法:

1。使用字符串类型:

然后,在处理过程中,您可以将
到达时间
日期
转换为
时间戳
日期
类型

使用
视图
并强制转换列,但
视图速度较慢。

2。使用ORC格式:


ORC同时支持
时间戳
日期
类型

您知道如何在Azure Datatricks中更新hive metastore版本吗
CREATE EXTERNAL TABLE IF NOT EXISTS dev_db.processing_table
                    (
                      campaign STRING,
                      status STRING,
                      file_name STRING,
                      arrival_time STRING
                    )
                    PARTITIONED BY ( 
                      Date STRING)
                   Stored as parquet
                   Location '/mnt/data_analysis/pre-processed/';
CREATE EXTERNAL TABLE IF NOT EXISTS dev_db.processing_table
                    (
                      campaign STRING,
                      status STRING,
                      file_name STRING,
                      arrival_time Timestamp
                    )
                    PARTITIONED BY ( 
                      Date date)
                   Stored as orc
                   Location '/mnt/data_analysis/pre-processed/';