解决Spark filter过滤条件中使用>=或<=时不识别的问题
一.场景
val jldxx_zxzq = jldxx_with_dddf
.withColumn("ZXZQ", zxzq(col("CBZQ")))
.filter(row => row.getAs("ZXZQ")!= "") // 过滤掉异常数据
// 如果存在,过滤掉抄表日期不在当前执行周期内的数据
.filter(row => row.getAs("CBRQ") >= row.getAs("ZXZQ").split("_")(0) &&
row.getAs("CBRQ") <= row.getAs("ZXZQ").split("_")(1))
二.异常信息

三.原因
是因为使用getAs函数获取某列的数据时没有指明具体的类型,导致无法判断是否支持"<="或 ">="这类的运算符,因而会报错!
三.解决方案
使用getAs时指明具体的类型!
代码如下:
val jldxx_zxzq = jldxx_with_dddf
.withColumn("ZXZQ", zxzq(col("CBZQ")))
.filter(row => row.getAs("ZXZQ")!= "") // 过滤掉异常数据
// 如果存在,过滤掉抄表日期不在当前执行周期内的数据
.filter(row => row.getAs[String]("CBRQ") >= row.getAs[String]("ZXZQ").split("_")(0) &&
row.getAs[String]("CBRQ") <= row.getAs[String]("ZXZQ").split("_")(1))
解决Spark filter过滤条件中使用>=或<=时不识别的问题的更多相关文章
- 工作总结 sql 中过滤条件 中的 (where中的) and
总结: 在where 后面做过滤的时候 如果 有 字段1 必须满足某种值 字段2 要满足 某种或某值的时候 直接 and 字段1 = ‘a’ and 字段2 = ‘b’ or 字 ...
- js获取过滤条件中参数的快捷方式
// window.location.href = "topupRecordController.do?exportExcel&" + encodeURI($(" ...
- 解决mysql的in条件中参数是带引号的字符串的时候查询失效
原文链接:https://blog.csdn.net/u014520745/article/details/54091256
- mysql query 条件中为空时忽略
☆. q.ques_group传入为null或''的时候不查询此条件: value AND (q.ques_group = :quesGroup or :quesGroup is null or :q ...
- .NET深入实战系列--EF到底怎么写过滤条件
本文唯一访问地址:http://www.cnblogs.com/yubaolee/p/DynamicLinq.html 对于系统开发来说,按不同字段进行过滤查询是一种常见的需求.在EF中通常的做法是: ...
- .NET深入实战系列--EF到底怎么写过滤条件(转)
原文来自:http://www.cnblogs.com/yubaolee/p/DynamicLinq.html 对于系统开发来说,按不同字段进行过滤查询是一种常见的需求.在EF中通常的做法是: /// ...
- WireShark系列: 使用WireShark过滤条件抓取特定数据流(zz)
应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...
- 一站式学习Wireshark(八):应用Wireshark过滤条件抓取特定数据流
应用抓包过滤,选择Capture | Options,扩展窗口查看到Capture Filter栏.双击选定的接口,如下图所示,弹出Edit Interface Settints窗口. 下图显示了Ed ...
- Wireshark过滤语句中常用的操作符
关键字有: eq,== 等于ne,!= 不等于gt,> 比…大lt,< 比…小 ge,>= 大于等于le,<= 小于等于 and,|| 且 or,&& 或 no ...
随机推荐
- 部署 YApi 接口管理服务
安装 Node curl -sL https://rpm.nodesource.com/setup_8.x | bash - yum install -y nodejs 安装 MongoDB vi / ...
- 全网最详细的最新稳定OSSEC搭建部署(ossec-server(CentOS7.X)和ossec-agent(CentOS7.X))(图文详解)
不多说,直接上干货! 前言 写在前面的话,网上能够找到一些关于ossec方面的资料,虽然很少,但是总比没有强,不过在实际的使用过程中还是会碰到许多稀奇古怪的问题.整理整理我的使用过程,就当做一篇笔记吧 ...
- easyui combobox 设置滚动条
设置滚动条: 1 panelHeight:200 :设置固定的高度. 2 panelHeight:'auto', panelMaxHeight:200. <input class=" ...
- 【CSS】flex布局初认识
1. 父容器为Flex容器,它有以下六个属性: 1)flex-direction: 作用:决定主轴的方向(如果为row,那么x方向为主轴:如果为column,那么y方向为主轴) 属性:row | r ...
- MyBatis源码解析(八)——Type类型模块之TypeAliasRegistry(类型别名注册器)
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6705769.html 1.回顾 前面几篇讲了数据源模块,这和之前的事务模块都是enviro ...
- java 8 双冒号运算符
前言 java8增加了双冒号运算符.lambda本质上都是语法糖,学习过C#委托.匿名委托再理解java8中的双冒号运算符就容易多了.双冒号就是把方法当作参数传递给需要的方法,或者说是传递到strea ...
- Map相关知识总结
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复. Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很 ...
- IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity
IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity 原文:http://docs.identityserver.io/en/release ...
- PHP 依赖注入和控制反转再谈(二)
今天有个朋友看到yii2中介绍的依赖注入一头雾水,之前我写过类似的文章发给他看了,可能还没深入理解吧,这里我再通俗点描述下依赖注入的原理吧,尽可能滴说通俗易懂一点吧:先还是扯下概念性滴问题(概念问题我 ...
- 44.Linux君正X1000-添加st7789v显示
由于板子LCD旧屏是ili9335型号的,旧屏有时候会断货,如果断货则使用一个st7789v型号的LCD 它们两个屏的区别在于初始化屏的参数不同,引脚都一样,也就是说需要使板子同时支持ili9335型 ...