当前位置: 首页 > news >正文

批量做单页网站大学专业宣传网站开发课题意义

批量做单页网站,大学专业宣传网站开发课题意义,石家庄网站建设多少钱,制作相册书这里写目录标题 需求碰到的问题格式问题分区问题#xff08;重点#xff09; 解决完整代码效果 需求 spark程序计算后的数据需要往PGSQL中的分区表进行写入。 碰到的问题 格式问题 使用了字符串格式#xff0c;导致插入报错。 val frame df.withColumn(insert_t… 这里写目录标题 需求碰到的问题格式问题分区问题重点 解决完整代码效果 需求 spark程序计算后的数据需要往PGSQL中的分区表进行写入。 碰到的问题 格式问题 使用了字符串格式导致插入报错。 val frame df.withColumn(insert_time,current_timestamp()))Batch entry 0 INSERT INTO t (a,insert_time) VALUES (1,2023-08-01 10:00:00) was aborted: ERROR: column insert_time is of type timestamp without time zone but expression is of type character varying分区问题重点 一直都是spark计算完后写单表或者hive的表都需要去手动去维护分区。但是写PGSQL空表只有表字段还没有数据没有创建分区需要手动先创建分区否则会报错。 报错信息 Partition key of the failing row contains (insert_time) (2023-08-04 21:14:09.641). Call getNextException to see other errors in the batch.插入失败的行的分区键包含的时间戳值 2023-08-04 21:14:09.641 在分区表中找不到对应的分区范围。 解决 最终的解决方案是在插入数据之前通过代码去添加分区添加好分区后再写入数据即可。 object WritePgSQL {def main(args: Array[String]): Unit {val spark SparkSession.builder().appName(SparkPostgreSQLPartitionedTable).config(spark.master, local).getOrCreate()// 设置PostgreSQL连接信息val postgresUrl jdbc:postgresql://192.168.160.123:5432/testval connectionProperties new java.util.Properties()connectionProperties.setProperty(user, test)connectionProperties.setProperty(password, 123456)// 创建测试数据val data Seq((1, 2023-08-01 10:00:00),(2, 2023-08-02 12:00:00),(3, 2023-08-03 15:00:00))val columns Seq(a, insert_time1)val df spark.createDataFrame(data).toDF(columns: _*)val frame df.drop(insert_time1).withColumn(insert_time, current_timestamp().cast(timestamp))// 动态创建分区范围// p1 可以换成p20230804这样的分区格式// t为表名// (TIMESTAMP 2023-08-04 00:00:00) 分区开始范围,一般通过代码生成为计算时间的零点// (TIMESTAMP 2023-08-05 00:00:00) 分区结束范围,一般通过代码生成为计算时间的下一天零点val createPartitionSql sCREATE TABLE p1 PARTITION OF t FOR VALUES FROM (TIMESTAMP 2023-08-04 00:00:00) TO (TIMESTAMP 2023-08-05 00:00:00) ;println(createPartitionSql)// 执行创建分区 SQLval connection java.sql.DriverManager.getConnection(postgresUrl, connectionProperties)val statement connection.createStatement()statement.executeUpdate(createPartitionSql)connection.close()// 将数据写入PostgreSQL分区表frame.write.mode(append).jdbc(postgresUrl, t, connectionProperties)} } 完整代码 自动生成当天日期和分区名称 object WritePgSQL {def main(args: Array[String]): Unit {val spark SparkSession.builder().appName(SparkPostgreSQLPartitionedTable).config(spark.master, local).getOrCreate()// 设置PostgreSQL连接信息val postgresUrl jdbc:postgresql://192.168.160.123:5432/testval connectionProperties new java.util.Properties()connectionProperties.setProperty(user, test)connectionProperties.setProperty(password, 123456)// 创建测试数据val data Seq((1, 2023-08-01 10:00:00),(2, 2023-08-02 12:00:00),(3, 2023-08-03 15:00:00))val columns Seq(a, insert_time1)val df spark.createDataFrame(data).toDF(columns: _*)val frame df.drop(insert_time1).withColumn(insert_time, current_timestamp().cast(timestamp))// 获取今天和明天的时间范围// 获取当前日期val currentDate LocalDate.now()// 获取下一天的日期val nextDayDate currentDate.plusDays(1)// 创建固定的时间部分00:00:00val startTime LocalTime.of(0, 0, 0)// 组合日期和时间来得到完整的日期时间并格式化为字符串val currentDateTimeString LocalDateTime.of(currentDate, startTime).format(DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss))val nextDayDateTimeString LocalDateTime.of(nextDayDate, startTime).format(DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss))// 格式化为yyyyMMdd字符串val dateFormatter DateTimeFormatter.ofPattern(yyyyMMdd)val currentDateString currentDate.format(dateFormatter)// 动态创建分区范围val createPartitionSql sCREATE TABLE p$currentDateString PARTITION OF tFOR VALUES FROM (TIMESTAMP $currentDateTimeString) TO (TIMESTAMP $nextDayDateTimeString) ;// 执行创建分区 SQLval connection java.sql.DriverManager.getConnection(postgresUrl, connectionProperties)val statement connection.createStatement()statement.executeUpdate(createPartitionSql)connection.close()// 将数据写入PostgreSQL分区表frame.write.mode(append).jdbc(postgresUrl, t, connectionProperties)} }效果
http://www.w-s-a.com/news/495126/

相关文章:

  • 南宁广告公司网站建设小程序源码破解
  • 沛县做网站xlec网站建设开发方式包括哪些方面
  • 山西网站建设 哪家好四川城乡和建设厅网站
  • 有瀑布流的网站小型商城网站
  • 百石网怎么做网站二次开发软件
  • 网站域名是什么东西制作网页哪家好
  • 合肥网站建设团队简述网站内容管理流程
  • 网站广告是内容营销吗wordpress增加背景图片
  • 网站建设技术jsp课程设计响应式布局网站开发
  • 东莞网站排名优化seo套路网站怎么做的
  • 我做网站网络建站一般多少钱
  • 如何快速提升网站关键词排名房地产网站开发毕业设计
  • 做网站 提交源码 论坛sem分析是什么意思
  • 网站建设与部署阿里云大学百度付费推广有几种方式
  • 作品集怎么做网站个人简历模板免费下
  • 工业网站素材重庆关键词自动排名
  • 拖拽式网站建设费用微网站怎么做的好名字
  • 长沙电信网站备案谷歌推广怎么做最有效
  • 网站建设与管理总结报告华为开发者联盟
  • 门诊部网站建设天空建筑网站
  • 扬州市城乡建设网站高端品牌鞋子有哪些牌子
  • 杭州网站建设招聘网长沙网络销售公司
  • 网站制作一年多少钱免费做电子章网站
  • 信誉好的营销网站建设徐州市铜山新区建设局网站
  • 建行网站关于我们山西seo和网络推广
  • 1m带宽做网站怎么样深圳网站建设制作开发公司
  • 网站建设 服务内容 费用郴州网站建设公司哪里有
  • 网站关键词重要性育才网站建设
  • 网络安全形势下怎么建设学校网站wordpress最新主题下载
  • 自己建设网站需要什么条件.gs域名做网站怎么样