我有一个已知的UUID列表。我想在Pig中做一个FILTER过滤掉我的列表中id列不包含UUID的记录。
我还没有找到一种方法来指定bytearray文字,以便我可以编写该过滤语句。
如何按UUID过滤?
(在一次尝试中我尝试使用https://github.com/cevaris/pig-dse每How 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'
)
答案 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');