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

ValueError: 4 columns passed, passed data had 51141 columns解决

背景,在clickhouse数据查询的时候,python脚本报错

ValueError: 4 columns passed, passed data had 51141 columns

首先要知道,conn.execcute(query)执行后返回结果格式:如图,tuple类型,包含两个元素,一个是数据集,一个是列名信息。

 ([('ddl, 'ccp','mk_list, 50), ('ddl, 'ccp','mk_list, 50), ('ddl, 'ccp','mk_list, 50), ('ddl, 'ccp','mk_list, 50), ('ddl, 'ccp','mk_list, 50)], [('act_type', 'String'), ('act_type2', 'String'), ('location', 'String'), ('num_cnt', 'UInt64')])

这个时候回看代码

result_rows为tuple元素,需要的部分为[result_rows[0]],且[result_rows[0]]未去重,包含51141个重复的('ddl, 'ccp','mk_list, 50)数据。

 params = {'params_1': act_type, 'params_2': act_type2, 'params_3': location}# 执行 query_sql 查询clickhouse的数据result_rows = conn.execute(query_sql, params, with_column_types=True)# 获取数据的列名,列名小写columns = [col[0].lower() for col in result_rows [1]]# 如果返回为空,返回空的df,否则的话,返回dfdf = pd.DataFrame(result_rows,columns=columns) if initial_successs_rows else pd.DataFrame(columns=['act_type', 'act_type2', 'location', 'num_cnt'])

修改代码如下:

主要修改点:
(1)对数据去重,避免同一条数据重复出现51141次
(2)取返回结果[0]

# 避免查询失败使用try except
try:params = {'params_1': act_type, 'params_2': act_type2, 'params_3': location}# 执行 query_sql 查询clickhouse的数据result_rows = conn.execute(query_sql, params, with_column_types=True)# 获取数据的列名,列名小写columns = [col[0].lower() for col in result_rows [1]]# 数据去重result_rows = list(set(result_rows [0]))
except Exception as e:result_rows =None# 如果返回为空,返回空的df,否则的话,返回dfdf = pd.DataFrame(result_rows,columns=columns) if initial_successs_rows else pd.DataFrame(columns=['act_type', 'act_type2', 'location', 'num_cnt'])
http://www.xdnf.cn/news/6067.html

相关文章:

  • 【消息队列】RabbitMQ基本认识
  • Git仓库迁移
  • 深度解析 Sora:从技术原理到多场景实战的 AI 视频生成指南【附学习资料包下载】
  • 模糊数学方法之模糊贴近度
  • 现代 Web 自动化测试框架对比:Playwright 与 Selenium 的深度剖析
  • AI智能分析网关V4周界入侵检测算法精准监测与智能分析,筑牢周界安全防线
  • flutter 视频通话flutter_webrtc
  • @Controller 与 @RestController-笔记
  • 架构设计不合理,如何优化系统结构
  • 设计并实现高并发系统,应用无锁编程与CAS机制
  • Android usb网络共享详解
  • Linux笔记---信号(中)
  • 计算机视觉----基础概念、卷积
  • 基于javaweb的SpringBoot自习室预约系统设计与实现(源码+文档+部署讲解)
  • VUE3 -综合实践(Mock+Axios+ElementPlus)
  • 基于Matlab的非线性Newmark法用于计算结构动力响应
  • 如何查看打开的 git bash 窗口是否是管理员权限打开
  • Oracle 中的虚拟列Virtual Columns和PostgreSQL Generated Columns生成列
  • win11 安装 wsl ubuntu 18.04后换源失败!
  • Void: Cursor 的开源平替
  • ET MessageQueue类分析
  • 汽车免拆诊断案例 | 2015款路虎极光车组合仪表提示“充电系统故障”
  • 第二个五年计划!
  • Android清单文件
  • No module named ‘OpenGL‘
  • 【SSL部署与优化​】​​HTTP/2与HTTPS的协同效应
  • Python uv包管理器使用指南:从入门到精通
  • 5.14本日总结
  • 地磁-惯性-视觉融合制导系统设计:现代空战导航的抗干扰解决方案
  • vue-ganttastic甘特图label标签横向滚动固定方法