SparkSQL编程需注意的细节
- SparkSQL是把Hive转为字符串后,以参数形式传递到
SparkSession.builder().enableHiveSupport().getOrcCreate().sql(Hive_String)中执行。
例子
SparkSession spark = SparkSession.builder().enableHiveSupport().getOrcCreate();
String sql = “ALTER TABLE DB_NAME.TABLE1 DROP IF EXISTS PARTITION(pt_dt=')"+ partition_date +"')";
- SparkSQL中,分区名、分区字段需小写。
如上面例子中的pt_dt分区名为小写,若写成PT_DT,则会报错。
同时,SELECT 分区字段时也需小写。
例如
String sql = "SELECT ID, "
+" NAME, "
+" pt_dt "
+" FROM DB_NAME.TABLE1 "
+" WHERE pt_dt = '" + partition_date + "'"
- 对传入参数要做判空处理
例如
if(versionNum==null || versionNum.isEmpty() || "none".equals(versionNum)) {
versionNum = "";
}
- 字符串拼接时,注意空格问题
若sql转为字符串没注意行首和行末的空格,可能出现sql解析时出现“粘连”现象。
例如
String sql = "SELECT ID,"
+" NAME, "
+" pt_dt"
+"FROM DB_NAME.TABLE1 "
+" WHERE pt_dt = '" + partition_date + "'"
其中,字段pt_dt后没有空格,FROM前也没有空格,sql解析出来会变成pt_dtFROM,造成语法错误。
SparkSQL编程需注意的细节的更多相关文章
- IE JS编程需注意的内存释放问题
1.给DOM对象添加的属性是一个对象的引用.范例:var MyObject = {};document.getElementById('myDiv').myProp = MyObject;解决方法:在 ...
- 网络编程api bind函数细节 select 细节
struct sockaddr_in bindaddr; bindaddr.sin_family = AF_INET; bindaddr.sin_addr.s_addr = htonl(INADDR_ ...
- 不要忽视Web编程中的小细节
概述:长时间以来,我们创造了某些在构造和范围内用以提升网站易用性的约定和实践.然后在我们进行web编程的时候总有一些疏忽和纰漏.这里总结了一些web编程时容易出现的小错误,并给出了相应的补救方法,希望 ...
- android需知小细节
1. 布局文件命名不能包含大写字母,特殊字符.MyImageView.xml错误. 2. simpleAdapter适配器参数的含义: 3. gridview gridview的三个重要的属性: 4 ...
- OC编程的一些UI细节
1/如果你想用一个半透明的View遮住当前窗口,连并NavigationBar也一并遮住的话,那么你需要 将视图添加到navigationController的View上 [self.navigati ...
- 关于div+css排版布局中需注意的细节问题
第一个注意点:选择器的使用(标签.class.id) 三种选择器中id(#)的优先级最高,根据id名筛选出唯一元素: 如下输入:#menu{ width:1200px; height:45px; ba ...
- TensorFlow 需注意的细节问题
1. 数据类型 不带小数点的数默认为 int32,带小数点的数默认为 float32:
- 你应当如何学习C++以及编程(细节是必要的,但不是重要的,把时间用在集中精力去解决问题,而不是学习新技术,那样练不成高手。在实践中提高才是最重要的。最最重要的内功还是长期学习所磨练出来的自学能力)good
最近在学习Qt但由于没有C++的基础,感觉学的很吃力.看到pongba的这篇文章感觉不错就弄过来了, 原文地址:http://blog.csdn.net/qter_wd007/article/deta ...
- Spark(九) -- SparkSQL API编程
本文测试的Spark版本是1.3.1 Text文本文件测试 一个简单的person.txt文件内容为: JChubby,13 Looky,14 LL,15 分别是Name和Age 在Idea中新建Ob ...
- 分享在winform下实现模块化插件编程-优化版
上一篇<分享在winform下实现模块化插件编程>已经实现了模块化编程,但我认为不够完美,存在以下几个问题: 1.IAppContext中的CreatePlugInForm方法只能依据完整 ...
随机推荐
- 【插件介绍】Mesh2Geom插件
Mesh to Geometry Plugin,来自达索官方论坛社区 原帖链接:Mesh to Geometry Plugin plugin feature: 允许Abaqus 用户从网格文件生成几何 ...
- Avalanche公链深度解析:创新共识、亚秒级最终性与生态竞争力
摘要:Avalanche定位为一个高性能.可扩展的Layer 1区块链平台,但它并不是一个新公链,其主网于2020年9月21日正式上线,有Ava Labs开发.Ava Labs成立于2018年,总部位 ...
- allure 报告空白
在pycharm 运行py文件后生成的报告内容空白: 尝试方法 替换allure版本号---不好用 用命令生成.html测试报告,再以浏览器形式打开 ** ** 命令 allure generate ...
- 【P1】Verilog部件级实验/有限状态机
课上 再次体验大心脏 T1 奇偶校验 for循环数1的个数判断奇偶/异或缩减运算符判断奇偶,然后根据check的奇偶要求调整最高位 bug1 !注意优先级:位运算 低于 比较运算. cnt & ...
- 带大家做了个 AI 项目,没想到这么简单!
大家好,我是程序员鱼皮,现在已经是全民 AI 时代了,咱们程序员更要想办法榨干 AI,把 AI 利用起来.前几天我一时兴起,直播用 2 多个小时的时间,从需求分析开始,带大家做了一个 AI 海龟汤游戏 ...
- msvcp110.dll丢失修复 按我的方法来,保证修复!
方法很简单,msvcp110.dll丢失,安装Microsoft Visual C++ 2012 Redistributable Package就可以,我把修复程序的链接放下面.链接地址: 链接:ht ...
- 一款 .NET 开源、功能强大的远程连接管理工具,支持 RDP、VNC、SSH 等多种主流协议!
前言 今天大姚给大家分享一款基于 .NET 开源(GPL-2.0 license).免费.功能强大的 Windows 远程连接管理工具,支持 RDP.VNC.SSH 等多种主流协议:mRemoteNG ...
- Asp.net mvc基础(十三)集合常用的扩展方法和Linq语句
详情参考:C#之集合常用扩展方法与Linq - 冯继强fjq - 博客园 (cnblogs.com)
- eolink对数据进行四舍五入处理
下图"BalanceAmount"返回值显示小数点2位以后的值,这样就与预计匹配值不等导致脚本错误 对这个值进行四舍五入处理,比如返回值变成整数 var num = eo.env. ...
- Linux四剑客grep、find、sed、awk使用
介绍 Linux四剑客是指在Linux系统中非常常用的四个命令工具,它们分别是grep.find.sed和awk.这四个工具在Linux系统中具有非常强大的功能,可以方便快捷地对文本进行搜索.处理 ...