pig 的chararry类型不能用比较运算符comparison operator
pig 的chararry类型可能是按字段,逐个字段进行比较。
element_id 是chararray类型,
语句:
no_app_category_mapping = filter no_element_id by element_id == '' or element_id is null or element_id == '0' or element_id >='14';
其中,element_id >='14'是错误的用法。
comparison operator不能操作chararray类型。
执行结果是 element_id为8 的被找出来了。‘8’>='14',很奇怪啊!
而改成 element_id <='14'时,再执行时,
执行结果找到了element_id =‘1’和element_id =‘11’的,说明不行。
原理:估计是升级为bytearray,然后,按字段比较,逐个字段,所以,8>1,而1相同时,1<4
所以11小于14,而8大于14.
pig官网有说明:貌似只能用==和!=,两边不一致是,implicit cast支持从低到高,不支持高到低。
如下:
Comparison Operators
Description
Operator |
Symbol |
Notes |
equal |
== |
|
not equal |
!= |
|
less than |
< |
|
greater than |
> |
|
less than or equal to |
<= |
|
greater than or equal to |
>= |
|
pattern matching |
matches |
Takes an expression on the left and a string constant on the right. expression matches string-constant Use the Java format for regular expressions. |
Use the comparison operators with numeric and string data.
Examples
Numeric Example
X = FILTER A BY (f1 == 8);
String Example
X = FILTER A BY (f2 == 'apache');
Matches Example
X = FILTER A BY (f1 matches '.*apache.*');
Types Table: equal (==) operator
bag |
tuple |
map |
int |
long |
float |
double |
chararray |
bytearray |
boolean |
datetime |
biginteger |
bigdecimal |
|
bag |
error |
error |
error |
error |
error |
error |
error |
error |
error |
error |
error |
error |
error |
tuple |
boolean (see Note 1) |
error |
error |
error |
error |
error |
error |
error |
error |
error |
error |
error |
|
map |
boolean (see Note 2) |
error |
error |
error |
error |
error |
error |
error |
error |
error |
error |
||
int |
boolean |
boolean |
boolean |
boolean |
error |
cast as boolean |
error |
error |
error |
error |
|||
long |
boolean |
boolean |
boolean |
error |
cast as boolean |
error |
error |
error |
error |
||||
float |
boolean |
boolean |
error |
cast as boolean |
error |
error |
error |
error |
|||||
double |
boolean |
error |
cast as boolean |
error |
error |
error |
error |
||||||
chararray |
boolean |
cast as boolean |
error |
error |
error |
error |
|||||||
bytearray |
boolean |
error |
error |
error |
error |
||||||||
boolean |
boolean |
error |
error |
error |
|||||||||
datetime |
boolean |
error |
error |
||||||||||
biginteger |
boolean |
error |
|||||||||||
bigdecimal |
boolean |
Note 1: boolean (Tuple A is equal to tuple B if they have the same size s, and for all 0 <= i < s A[i] == B[i])
Note 2: boolean (Map A is equal to map B if A and B have the same number of entries, and for every key k1 in A with a value of v1, there is a key k2 in B with a value of v2, such that k1 == k2 and v1 == v2)
转载于:https://www.cnblogs.com/cl1024cl/p/6205409.html
pig 的chararry类型不能用比较运算符comparison operator相关推荐
- Matlab常见报错:错误使用 conv2不支持 N 维数组;cell类型数组不支持运算符
一.错误使用 conv2不支持 N 维数组: 错误样例: 原因:提示错误使用 conv2不支持 N 维数组,可能是因为你读取的图像并不是灰度图像,而是RGB图像,有red/green/blue三种颜色 ...
- C++——运算符重载operator
C++--运算符重载operator C++ prime plus第11章,运算符重载是C++的一种多态.运算符重载格式如下: operator运算符(argument-list) 1.做普通函数重载 ...
- 运算符(operator)
一.运算符(operator) 1.基本运算符: 算数运算符:加减乘除"+""-""*""/""%" ...
- Python编程基础:第五十节 海象运算符Walrus Operator
第五十节 海象运算符Walrus Operator 前言 实践 前言 海象运算符:=是Python3.8的新特性,其作用是将数值赋值给变量,并将其作为大型表达式的一部分进行执行,海象运算符不能单独使用 ...
- 【C++】运算符重载 Operator Overload
运算符重载 Operator Overload 可以为运算符增加一些新的功能 class Point { private:int m_x;int m_y; public:Point(int x, in ...
- 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)
文章目录 I . Kotlin 变量总结 II . Kotlin 非空变量 III . 非空变量不能赋空 IV . lateinit 关键字 V . lateinit 初始化判定 VI . Kotli ...
- 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流
最初的步骤 Python是大小写敏感的 任何在#符号右面的内容都是注释 >>> help('print') 在"print"上使用引号,那样Python就可以理解 ...
- python学习1:注释\变量类型\转换函数\转义字符\运算符
python基础学习 与大多数语言不同,python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} .缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数. (一个tab= ...
- C# 可空类型和空接合运算符(??)
随手翻阅C#高级编程时,看到可空类型和运算符这一节,又发现了自己的一个C#知识盲点.可空类型: 可空类型只能用于值类型,不能用于引用类型,引用类型本身支持null值. 如果直接把null赋值给int类 ...
最新文章
- 现代计算机基本工作原理,现代计算机的基本工作原理是
- Linux 配置开机自启 和 修改环境变量
- linux dhcp 论文,毕业论文—基于linux的dhcp服务器配置.doc
- 如何将传统OA移动化?
- 利用大数据技术探索“数字公民”创新
- OOP设计模式[JAVA]——03职责链模式
- 打造高效的工作环境 – SHELL 篇
- Mon Nov 18 01:40:52 CST 2019 WARN: Establishing SSL connection without server's identity verificatio
- boost::hana::suffix用法的测试程序
- python怎么让输出结果为01_python从0到1--01.python中的输入/输出(基础篇)
- windows剪贴板
- linux恢复rm删除文件ssd,科学网—linux恢复rm -rf删除的文件 - 罗晓光的博文
- 推荐系统组队学习——GBDT+LR
- .net dropdownlist 動態顯示,指定字段
- 【SICP练习】31 练习1.37
- 网络编程~socket
- 为Exynos4412移植2022版U-Boot(一)步骤及其原理分析
- Blue Coat让企业在降低风险的同时利用网络应用程序
- 【Doris Weekly FAQ】2021.08.02~2021.08.15
- ienumerable vs iqueryable异常