它看起来像一个愚蠢的问题,但我找不到从我的行中过滤空值的方法.这是我转储对象geoinfo时的结果:
DUMP地理信息;
([经度#70.95853,纬度#30.9773])
([经度#9.37944507,纬度#38.91780853])
(null)
(null)
(null)
([经度#-92.64416,纬度#16.73326])
(null)
(null)
([经度#-9.15199849,纬度#38.71179122])
([经度#9.15210796,纬度#38.71195131])
这是描述
DESCRIBE geoinfo;
geoinfo:{geoLocation:bytearray}
我想要做的是过滤这样的空值:
geoinfo_no_nulls = FILTER geoinfo BY geoLocation不为null;
但结果仍然相同.没有过滤.
我也试过这样的事
geoinfo_no_nulls = FILTER geoinfo BY geoLocation!='null';
我收到了一个错误
org.apache.pig.backend.executionengine.ExecException:错误1071:无法将地图转换为字符串
我究竟做错了什么?
细节,在ubuntu上运行,hadoop-1.0.3与pig 0.9.3
pig -version Apache Pig版本0.9.3-SNAPSHOT(rexported)编译于2012年10月24日,19:04:03
java版"1.6.0_24"OpenJDK运行时环境(IcedTea6 1.11.4)(6b24-1.11.4-1ubuntu0.12.04.1)OpenJDK 64位服务器VM(内置20.0-b12,混合模式)
给定n个元组,编写一个函数,返回带有连接值的列表.
例:
pairs = [(1,62),
(1,192),
(1,168),
(64,449),
(263,449),
(192,289),
(128,263),
(128,345),
(3,10),
(10,11)
]
Run Code Online (Sandbox Code Playgroud)
结果:
[[1,62,192,168,289],
[64,449,263,128,345,449],
[3,10,11]]
Run Code Online (Sandbox Code Playgroud)
我相信它可以使用图形或树作为数据结构来解决,为每个值创建节点以及每个对的边缘,每个树或图表代表连接值,但我还没有找到解决方案.
在python中生成一个产生这些对的连接值列表的结果的最佳方法是什么?
我正在尝试分组和计算PigLatin中每个组的术语频率,但是我有一些麻烦要弄清楚如何去做.
我有一个具有以下模式的对象集合:
{cluster_id: bytearray,terms: chararray}
Run Code Online (Sandbox Code Playgroud)
以下是一些样本
(10, smerter)
(10, graviditeten)
(10, smerter)
(10, smerter)
(10, udemærket)
(20, eis feuer)
(20, herunterladen schau)
(20, download gratis)
(20, download gratis)
(30, anschauen kinofilm)
(30, kauf rechnung)
(30, kauf rechnung)
(30, versandkostenfreie lieferung)
(30, kostenlose)
(30, kostenlose)
(30, kostenlose)
Run Code Online (Sandbox Code Playgroud)
我试图得到的结果是这样的
(10, smerter, 3)
(10, graviditeten, 2)
(10, udemærket, 1)
(20, download gratis, 2)
(20, eis feuer, 1)
(20, herunterladen schau, 1)
(30, kostenlose, 3)
(30, kauf rechnung, 2)
(30, anschauen kinofilm, 1)
(30, …Run Code Online (Sandbox Code Playgroud)