小白首次尝试导入本地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相关推荐

  1. spark-sql create table using orc

    在分区表中使用不同建表方式,hive和spark-sql中insert overwrite data现象不同. 1.问题出现过程 1)spark-sql建表 CREATE TABLE t_using ...

  2. mysql导入复杂excel表格,较复杂的excel表格导入数据库oracle或mysql《》

    在JAVA web开发中怎么把Excel中的数据导入到oracle数据库中 1.准备数:在excel中出需要的数据 2.将excel中的数据另存为文件(有制表符分隔的) 3.将新保存到文本文件中的数据 ...

  3. JS实现Excel导入以及table导出为Excel

    在开发项目的过程中遇到了一个需求,将excel文件导入并且解析渲染到页面上.用户可以对表格内的部分内容做修改后再上传到服务端. 导入Excel 1.使用html支持上传标签从本地获取文件,例如type ...

  4. SQL Server从本地Excel表格导入数据

    SQL Server从本地Excel表格导入数据 软件版本 操作步骤 常见问题 软件版本 SQL Server 2014. Excel 2010 操作步骤 打开需要导入的数据库,设计并创建数据表,包括 ...

  5. 导入表格excel的方法+sqlsrver数据导入(.xlsx):未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    sqlsrver数据导入(.xlsx):未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序 解决方法 弹窗提示下面错误 解决方法:下载AccessDa ...

  6. EasyExcel学习笔记——本地excel的导入导出、Web端excel的导入导出

    EasyExcel学习笔记 EasyExcel 用于 Java解析.生成Excel,是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. 官方 ...

  7. ABAP-1-会计凭证批量数据导入本地ACCESS

    公司会计凭证导入ACCESS数据库,需要发送给审计,原先的方案是采用DEPHI开发的功能(调用函数获取会计凭证信息,然后INSERT到ACCESS数据表),运行速度非常慢,业务方要求对该功能进行优化, ...

  8. PHP 导入导出excel、csv百万数据到数据库

    PHP 导入导出excel.csv百万数据到数据库 待解决: wamp下导入导出百万数据没有问题 lnmp下导入10W条数据没问题,导入50W及以上会出现nginx504报错 代码包地址 测试数据表地 ...

  9. 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 ...

  10. java excel jxls_java通过jxls框架实现导入导出excel文件实例

    //使用jxls报表生成工具,把java实体类导出生成 Excel文件或导入 Excel 插入数据库 //读取 public class ReadExcel { private final stati ...

最新文章

  1. 冒号表达式在计算帧率中的作用
  2. 清北刷题冲刺 11-02 a.m
  3. 利用task和电平敏感的always快设计经比较后重组信号的组合逻辑
  4. P1943-LocalMaxima_NOI导刊2009提高(1)【数论】
  5. 浅谈line-height
  6. Bootstrap3 行内文本样式
  7. centos 修改密码_centos7忘记root密码怎么改
  8. 对面象对象概念的理解、解释
  9. BZOJ3517 翻硬币
  10. Python 实验三 使用 TCP 实现智能聊天机器人
  11. Kmeans算法实现
  12. java flag 用法_Java中一些常用的方法
  13. sublime中文乱码问题
  14. Google Chrome插件开发-Context Menus
  15. 阿里、百度、美团都在用的‘’高并发秒杀系统‘’;抢红包、秒杀活动、微博热搜、12306抢票等高并发场景
  16. eclipse字体颜色设置的方法
  17. 三维空间直线与平面交点
  18. 怎样取消悬浮的窗口?
  19. .NET 时分HHmm字符串转时间类型
  20. 数字图像处理个人练习02--点运算、空域平滑、空域锐化

热门文章

  1. 14.hibernate的入门
  2. 借助高德LBS开放平台打造属于国人的LBS+AR游戏
  3. 壁纸控福音:私藏的100PC张壁纸一次打包分享
  4. ssh secure 安装mysql_centos7 安装mysql
  5. 【linux内核分析与应用-陈莉君】中断机制概述
  6. 知道创宇区块链安全实验室|Deus Finance预言机攻击事件分析
  7. P8195 [传智杯 #4 决赛] 小智的疑惑 —KMP
  8. 2020年个人年终总结
  9. C/C++ int数组初始化
  10. nginx 漏洞修复