spark升级:从1.6升级到2.4.6的记录

 

 

负责的一个任务平台项目的spark版本是1.6.1的,主要变成语言是python;

现阶段要把spark从1.6.1 直接 升级到2.4.6版本,这期间遇到很多问题,特此记录:

1、语法兼容问题

数据平台任务会分成天任务、小时任务,我们会把处理后的数据写入到hive的表里面(分区里面)

比如:

spark升级:从1.6升级到2.4.6的记录

 

 

 1.6版本使用的最终落地语法是:

source.write.format("orc").partitionBy(%s).insertInto("%s.%s", True)

当升级到2.4以后,报错:

insertInto() can't be used together with partitionBy()

因为在spark2.0以后,认为insertInto本身要插入的表是有分区的(分区是在创建表的时候指明的),所以不需要使用partitionBy

但是我们的表是需要进行分区插入的,比如:

CREATE EXTERNAL TABLE `ad.adwise_ad_order`(
  `sdate` int COMMENT '日期', 
  `order_id` string COMMENT '广告订单ID', 
  `req_num` bigint COMMENT '广告请求量', 
  `imp_filter_pv` bigint COMMENT '广告展现过滤PV', 
  `click_filter_pv` bigint COMMENT '广告点击过滤PV', 
  `imp_num` bigint COMMENT '广告曝光量', 
  `vis_req_num` bigint COMMENT '广告可见请求量', 
  `vis_imp_num` bigint COMMENT '广告可见曝光量', 
  `vis_display_num` bigint COMMENT '广告可见展现量', 
  `click_num` bigint COMMENT '广告点击量', 
  `lands_num` bigint COMMENT '广告线索量', 
  `req_uv` bigint COMMENT '广告请求UV', 
  `imp_uv` bigint COMMENT '广告曝光UV', 
  `imp_login_uv` bigint COMMENT '广告曝光会员数', 
  `vis_req_uv` bigint COMMENT '广告可见请求UV', 
  `vis_imp_uv` bigint COMMENT '广告可见曝光UV', 
  `vis_imp_login_uv` bigint COMMENT '广告可见曝光会员数', 
  `lands_uv` bigint COMMENT '广告线索UV', 
  `click_uv` bigint COMMENT '广告点击UV', 
  `lands_login_uv` bigint COMMENT '广告线索会员数')
PARTITIONED BY ( 
  `dt` string)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
WITH SERDEPROPERTIES ( 
  'colelction.delim'=',', 
  'field.delim'='\t', 
  'line.delim'='\n', 
  'mapkey.delim'=':', 
  'serialization.format'='\t') 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
  'viewfs://AutoLfCluster/team/ad/pre/adwise_ad_order'
TBLPROPERTIES (
  'transient_lastDdlTime'='1512551282')
View Code

相关文章:

  • 2022-01-08
  • 2022-12-23
  • 2022-01-27
  • 2021-11-11
  • 2021-06-28
  • 2021-08-31
  • 2022-01-22
  • 2021-11-05
猜你喜欢
  • 2021-07-22
  • 2022-01-16
  • 2021-10-04
  • 2022-12-23
  • 2021-09-19
  • 2021-12-19
  • 2022-12-23
相关资源
相似解决方案