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)
版权声明:本文博客原创文章,博客,未经同意,不得转载。
pig 的chararry不能用于比较的类型可以comparison operator的更多相关文章
- pig 的chararry类型不能用比较运算符comparison operator
pig 的chararry类型可能是按字段,逐个字段进行比较. element_id 是chararray类型, 语句: no_app_category_mapping = filter no_ele ...
- Linux— file命令 用于辨识文件类型
Linux file命令用于辨识文件类型. 通过file指令,我们得以辨识该文件的类型. 语法 file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...] ...
- C++ class内类型重载,operator Type()
#include <iostream> // operator Type() 类型操作符重载 // operator int() // operator double() // ... / ...
- String的valueOf()用于将其它类型转换为字符串
String的valueOf()重载方法可将double类型,int类型,boolean类型以及char数组类型等变量转换为String类变量. 注:String的valueOf()可将char数组转 ...
- springMVC使用@RequestParam用于处理简单类型的绑定
使用@RequestParam常用于处理简单类型的绑定. value:参数名字,即入参的请求参数名字,如value=“item_id”表示请求的参数区中的名字为item_id的参数的值将传入: req ...
- 实现type函数用于识别标准类型和内置对象类型
function type(obj){ return Object.prototype.toString.call(obj).slice(8,-1); } var t=type(new Number( ...
- vs2017中char* str = "1234asd56";会报错,——const char*类型的值不能用于初始化char*类型的实体
原因: "1234asd56"是常量 ,正确的写法本身就是:const char* str = "1234asd56"; 之所以之前的vs版本可以写成char* ...
- "const char *" 类型的值不能用于初始化 "char *" 类型的实体
用vs2019发现会出现这样的问题 最后发现只要设置一下就解决了,解决方案如下: 右击该项目,选择属性->c/c++->语言->将符合模式改为否就行了... 设置之后程序没有再报错, ...
- pig简介
Apache Pig是MapReduce的一个抽象.它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流.Pig通常与 Hadoop 一起使用:我们可以使用Apache Pig在Hadoop ...
随机推荐
- 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?
内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的, ...
- javascript实现函数的默认參数值方法
近期在学python,得益于python中的decorator思路,想到在javascript中參数是不能定义默认值的,可是能够通过decorator给它模拟出来,话不多说,上代码 <!DO ...
- 【Java收集的源代码分析】Hashtable源代码分析
Hashtable简单介绍 Hashtable相同是基于哈希表实现的,相同每一个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时.相同会自己主动增长. Has ...
- 事件冒泡 ,停止事件冒泡 e.stopPropagation()
<1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>防止起泡 ...
- 使用mysqlbinlog工具的基础上及时恢复数据的位置或点
使用mysqlbinlog工具的基础上及时恢复的位置或点 MySQL备份一般采取完全备份的形式加日志备份.让我们运行一个完整备份,每天.每小时运行二进制日志备份. 这样在MySQL Server故障后 ...
- NET功能集
NET功能集 目录 1. ObsoleteAttribute2. 设置默认值属性: DefaultValueAttribute3. DebuggerBrowsableAttribute4. ??运算符 ...
- Dapper的使用
轻量型ORM框架Dapper的使用 /// <summary> /// 查询操作 /// </summary> /// <typeparam name="T&q ...
- NIVC->IPR[IPADDR]
#include <stm32f10x.h> #include "sys.h" //表偏移地址 //NVIC_VectTab:基址 //Offset:偏移量 //C ...
- Windows 怎么知道我已连线到网际网络? 原来当中大有文章!
原文 Windows 怎么知道我已连线到网际网络? 原来当中大有文章! 标题这个问题好像很简单, 但原来深入研究起来还真的不是”因为我能看到网页嘛”这样简单的答案. 研究这个课题是由于公司内部的防火墙 ...
- 观察者模式(observer行为)c#简单的例子
观察者模式(observer行为)c#简单的例子 几点:模式使观察目标和实现松耦合之间的依赖关系.通知会传播自己主动 样本:玩家击中后发生一系列变化的敌人:后发爆炸.敌人少1一个.... namesp ...