Apache spark Hortonworks配置单元仓库连接器和架构更新
Hortonworks Hive Warehouse Connector在v.1.0.0之前似乎不支持架构更新。 我试着用Apache spark Hortonworks配置单元仓库连接器和架构更新,apache-spark,hadoop,hive,apache-spark-sql,hiveql,Apache Spark,Hadoop,Hive,Apache Spark Sql,Hiveql,Hortonworks Hive Warehouse Connector在v.1.0.0之前似乎不支持架构更新。 我试着用 hive .createTable(tableName) .ifNotExists() .column(name, type) .create() 如果表存在但具有不同的模式,则什么也不会发生。 然后我尝试用不同的模式编写数据帧 dataFrame .write .format("com.hortonworks.spark.sql.hive.lla
hive
.createTable(tableName)
.ifNotExists()
.column(name, type)
.create()
如果表存在但具有不同的模式,则什么也不会发生。
然后我尝试用不同的模式编写数据帧
dataFrame
.write
.format("com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector")
.save()
什么也没发生。我希望像Spark那样抛出AnalysisException。我发现要创建HWC表,会生成一个查询
CREATE TABLE IF NOT EXISTS schema.table (SERIALKEY DECIMAL(38,10),SOME STRING,SOME_OTHER STRING,...) STORED AS ORC
仅当表不存在且方案不进行比较时,才会执行该操作。
然后请求插入数据
LOAD DATA INPATH '/tmp/20190222040853-6ab51b3c-a459-41df-9739-38bf5efb8da1' INTO TABLE schema.table
根据文件
load不执行针对架构的数据验证
指挥部
因此,如果方案更改,HWC可以将此数据帧记录在配置单元存储器中,其中具有不同方案的旧表可以毫无例外地保存数据。我发现,要创建HWC表,会生成一个查询
CREATE TABLE IF NOT EXISTS schema.table (SERIALKEY DECIMAL(38,10),SOME STRING,SOME_OTHER STRING,...) STORED AS ORC
仅当表不存在且方案不进行比较时,才会执行该操作。
然后请求插入数据
LOAD DATA INPATH '/tmp/20190222040853-6ab51b3c-a459-41df-9739-38bf5efb8da1' INTO TABLE schema.table
根据文件
load不执行针对架构的数据验证
指挥部
因此,如果方案更改,HWC可以将此数据帧记录在配置单元存储器中,其中具有不同方案的旧表可以毫无例外地保存数据