SparkSql create table导入本地excel
小白首次尝试导入本地excel表格到数据库并创建table,因为刚接触sparksql不久所以犯了很多小错误,特此记录。
数据源处理
首先是excel表格的处理,因为涉及公司机密和隐私就不放具体数据了,6条columns,一开始因为手贱把空白表格拖动了几下,导致后来把空白列也当做null数据算进去了。
因为要把它变成可以处理的类型,所以要保存为txt文件。分隔符选择",",可能是因为excel版本的缘故不能直接到处逗号分割的文本(只能tab符),选择先save as CSV格式,然后再修改后缀就好了。
这里犯了一个错,就是txt里第一行会是列名,但是我们不需要,只需要各列的值,可以手动删除。
这是其中一行。
上传到数据库
我们公司用的是自主开发的数据库平台,总之就是把txt文件upload上Repository目录下,之后sql能访问就行。
sql代码
CREATE EXTERNAL TABLE default.eip_rewards_usage (Asset varchar(50),Platform varchar(50),UserOrBatch varchar(50),NT_Login varchar(50),y_Date DECIMAL(18,0),Sum_ACCESS_CNT DECIMAL(18,0))
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/taiwang/eip_rewards_usage_test/';
一共六列,前四列是string类型,由于博主太zz相关文档说明没找到,反反复复试了好几次String、StringType之类的关键词,终于确定用可变长度的 varchar来定义column name。
(修订:之前直接用char加长度的描述来定义column name这样是错误的,在之后查询的时候不得不补全空白字符数,显得很蠢。)
然后Location不用精确到我们上传的txt,只用到该文件在的目录就行,目录下的文件全部会被扫描一遍。
然后refresh一遍就成功了。
refresh table eip_rewards_usage;
select * from eip_rewards_usage;
如果创建失败或者要修改的,就把原来的表格下线重新create一遍,或者直接换个名字就行。
drop table default.eip_rewards_usage
最后:因为真的是小白实习生,随便写一行sql跑通了都能高兴半天,特记此文,以资自励。
SparkSql create table导入本地excel相关推荐
- spark-sql create table using orc
在分区表中使用不同建表方式,hive和spark-sql中insert overwrite data现象不同. 1.问题出现过程 1)spark-sql建表 CREATE TABLE t_using ...
- mysql导入复杂excel表格,较复杂的excel表格导入数据库oracle或mysql《》
在JAVA web开发中怎么把Excel中的数据导入到oracle数据库中 1.准备数:在excel中出需要的数据 2.将excel中的数据另存为文件(有制表符分隔的) 3.将新保存到文本文件中的数据 ...
- JS实现Excel导入以及table导出为Excel
在开发项目的过程中遇到了一个需求,将excel文件导入并且解析渲染到页面上.用户可以对表格内的部分内容做修改后再上传到服务端. 导入Excel 1.使用html支持上传标签从本地获取文件,例如type ...
- SQL Server从本地Excel表格导入数据
SQL Server从本地Excel表格导入数据 软件版本 操作步骤 常见问题 软件版本 SQL Server 2014. Excel 2010 操作步骤 打开需要导入的数据库,设计并创建数据表,包括 ...
- 导入表格excel的方法+sqlsrver数据导入(.xlsx):未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
sqlsrver数据导入(.xlsx):未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序 解决方法 弹窗提示下面错误 解决方法:下载AccessDa ...
- EasyExcel学习笔记——本地excel的导入导出、Web端excel的导入导出
EasyExcel学习笔记 EasyExcel 用于 Java解析.生成Excel,是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. 官方 ...
- ABAP-1-会计凭证批量数据导入本地ACCESS
公司会计凭证导入ACCESS数据库,需要发送给审计,原先的方案是采用DEPHI开发的功能(调用函数获取会计凭证信息,然后INSERT到ACCESS数据表),运行速度非常慢,业务方要求对该功能进行优化, ...
- PHP 导入导出excel、csv百万数据到数据库
PHP 导入导出excel.csv百万数据到数据库 待解决: wamp下导入导出百万数据没有问题 lnmp下导入10W条数据没问题,导入50W及以上会出现nginx504报错 代码包地址 测试数据表地 ...
- postgres语法_SQL Create Table解释了MySQL和Postgres的语法示例
postgres语法 A table is a group of data stored in a database. 表是存储在数据库中的一组数据. To create a table in a d ...
- java excel jxls_java通过jxls框架实现导入导出excel文件实例
//使用jxls报表生成工具,把java实体类导出生成 Excel文件或导入 Excel 插入数据库 //读取 public class ReadExcel { private final stati ...
最新文章
- 冒号表达式在计算帧率中的作用
- 清北刷题冲刺 11-02 a.m
- 利用task和电平敏感的always快设计经比较后重组信号的组合逻辑
- P1943-LocalMaxima_NOI导刊2009提高(1)【数论】
- 浅谈line-height
- Bootstrap3 行内文本样式
- centos 修改密码_centos7忘记root密码怎么改
- 对面象对象概念的理解、解释
- BZOJ3517 翻硬币
- Python 实验三 使用 TCP 实现智能聊天机器人
- Kmeans算法实现
- java flag 用法_Java中一些常用的方法
- sublime中文乱码问题
- Google Chrome插件开发-Context Menus
- 阿里、百度、美团都在用的‘’高并发秒杀系统‘’;抢红包、秒杀活动、微博热搜、12306抢票等高并发场景
- eclipse字体颜色设置的方法
- 三维空间直线与平面交点
- 怎样取消悬浮的窗口?
- .NET 时分HHmm字符串转时间类型
- 数字图像处理个人练习02--点运算、空域平滑、空域锐化