通过pig中的uuid进行过滤

tez616oj  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(365)

我有一个已知uuid的列表。我想在pig中做一个filter,从我的列表中过滤出id列不包含uuid的记录。
我还没有找到一种方法来指定bytearray文本,以便编写filter语句。
如何按uuid过滤?
(有一次我试着用https://github.com/cevaris/pig-dse 根据如何在pig中过滤cassandra timeuuid/uuid,我认为我可以通过uuid的字符来过滤,但我得到了

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'

)

mwyxok5s

mwyxok5s1#

使用此python自定义项

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');

相关问题