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

Hive 导入csv文件,数据中包含逗号的问题

问题

今天 Hive 导入 csv 文件时,开始时建表语句如下:

CREATE TABLE IF NOT EXISTS test.student (name STRING COMMENT '姓名',age STRING COMMENT '年龄',gender STRING COMMENT '性别',other_info STRING COMMENT '其他信息'
)
COMMENT '学生信息表'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

然后导入 csv 文件,发现数据串列了,查看数据发现是因为数据中包含逗号的问题,因为 csv 文件列分隔符就为逗号,所以直接导入到表中会使数据串列。

解决办法

查询资料发现是建表语句的问题,所以我们要需要在建表的时候指定列包围符号。如下:

CREATE TABLE IF NOT EXISTS test.student (name STRING COMMENT '姓名',age STRING COMMENT '年龄',gender STRING COMMENT '性别',other_info STRING COMMENT '其他信息'
)
COMMENT '学生信息表'
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES ('separatorChar' = ',','quoteChar' = '"','escapeChar' = '\\'
)
STORED AS TEXTFILE;

使用 OpenCSVSerde 作为数据序列化程序,并通过 SERDEPROPERTIES 指定 separatorChar(分隔符)和 quoteChar(引号包围符号)以及 escapeChar (转义字符)的值。

默认 csv 文件的分隔符、引号和转义字符(如果未指定)

DEFAULT_ESCAPE_CHARACTER \
DEFAULT_QUOTE_CHARACTER  "
DEFAULT_SEPARATOR        ,
http://www.lryc.cn/news/142048.html

相关文章:

  • 1、Odoo开发起点
  • Ubuntu22.04 交叉编译树莓派CM4 kernel
  • 稀疏矩阵搜索(两种方法解决:1.暴力+哈希 2.二分法)
  • NodeJS系列教程、笔记
  • 4.4TCP半连接队列和全连接队列
  • 一键实现 Oracle 数据整库同步至 Apache Doris
  • Unity3D软件安装包分享(附安装教程)
  • Vue2向Vue3过度Vue3组合式API
  • ⛳ Docker 安装 MySQL
  • 4.6 TCP面向字节流
  • uniapp返回上一页并刷新
  • LRU cache的实现细节优化——伪结点的技巧
  • 【C/C++】父类指针指向子类对象 | 隐藏
  • NSSCTF——Web题目2
  • 从零到富:探索CSGO搬砖项目的无限可能
  • Uniapp中vuex的使用
  • SpringBoot案例-配置文件-参数配置化
  • android系统启动流程之zygote(Native)启动分析
  • Win10上ffmpeg出现Invalid report file level
  • Vue3 中引入液晶数字字体(通常用于大屏设计)
  • 从 Future 到 CompletableFuture:简化 Java 中的异步编程
  • 【ARMv8 SIMD和浮点指令编程】NEON 乘法指令——乘法知多少?
  • Nginx详解 第三部分:Nginx高级配置(附配置实例)
  • postman访问ruoyi后台接口
  • 大数据时代的软件开发实践:利用云计算和AI赋能创新
  • 32、启用 HTTP 响应压缩和编程式配置Web应用
  • DiskCatalogMaker for Mac简单智能快速的磁盘管理工具
  • C语言练习5(巩固提升)
  • SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第三天)动态SQL
  • Kaggle(3):Predict CO2 Emissions in Rwanda