在Pig中按UUID过滤

时间:2014-10-09 19:41:53

标签: filter apache-pig uuid literals

我有一个已知的UUID列表。我想在Pig中做一个FILTER过滤掉我的列表中id列不包含UUID的记录。

我还没有找到一种方法来指定bytearray文字,以便我可以编写该过滤语句。

如何按UUID过滤?

(在一次尝试中我尝试使用https://github.com/cevaris/pig-dseHow to FILTER Cassandra TimeUUID/UUID in Pig认为我可以通过UUID的chararray文字过滤但我得到了

grunt> post_creators= LOAD 'cql://mykeyspace/mycf/' using AbstractCassandraStorage;
2014-10-09 14:56:05,597 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: could not instantiate 'AbstractCassandraStorage' with arguments 'null'

1 个答案:

答案 0 :(得分:0)

使用此python UDF

import array
import uuid
@outputSchema("uuid:bytearray")
def to_bytes(uuid_str):
    return array.array('b', uuid.UUID(uuid_str).bytes)

像这样过滤:

users = FILTER users by user_id == my_udf.to_bytes('dd2e03a7-7d3d-45b9-b902-2b39c5c541b5');