作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的 Cassandra 模式,使用 Datastax Enterprise
CREATE KEYSPACE applications
WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 1};
USE applications;
CREATE TABLE events(
bucket text,
id timeuuid,
app_id uuid,
event text,
PRIMARY KEY(bucket, id)
);
我想通过 app_id
(TimeUUID) 和 id
(UUID) 在 PIG 中过滤,这是我的 Pig 脚本。
events = LOAD 'cql://applications/events'
USING CqlStorage()
AS (bucket: chararray, id: chararray, app_id: chararray, event: chararray);
result = FOREACH events GENERATE bucket, id, app_id;
DESCRIBE result;
DUMP result;
这是结果
result: {bucket: chararray,id: chararray,app_id: chararray}
(2014-02-28-04,?O]??4??p??M?,;??F? (|?Mb) \n
(2014-02-28-04,?O??4??p??M?,?h^@?E????)
(2014-02-28-04,?V???4??p??M?,;??F? (|?Mb)
(2014-02-28-04,?W?0?4??p??M?,?h^@?E????)
(2014-02-28-04,?X^p?4??p??M?,?h^@?E????)
注意,app_id
和 id
字段是二进制的,我需要按一些 UUID 进行过滤,有什么建议吗?
最佳答案
您需要使用 UDF 将 UUID/TimeUUID 的二进制字节转换为 chararray。不要试图像AS那样直接定义为chararray(bucket: chararray, id: chararray, app_id: chararray, event: chararray);
或者您可以使用 https://github.com/cevaris/pig-dse/blob/master/src/main/java/com/dse/pig/udfs/AbstractCassandraStorage.java将 UUID/TimeUUID 转换为字符串
如果您认为将 UUID 转换为默认字符串很好,请提交 Cassandra 票证。
关于cassandra - 如何在 Pig 中过滤 Cassandra TimeUUID/UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22159722/
我是一名优秀的程序员,十分优秀!