我对猪拉丁语很新,请原谅以下问题中的任何无知。我继承了一些基本上具有以下功能的代码:
template <typename T>
class Exporter{
public:
Exporter( SEXP x ) : t(x){}
inline T get(){ return t ; }
private:
T t ;
} ;
现在,如果我转储NumericVector
,我会得到类似以下内容(假数据)
R> x <- array(1:27, c(3, 3, 3))
R> rcube_means(x)
[,1] [,2] [,3]
[1,] 2 11 20
[2,] 5 14 23
[3,] 8 17 26
R> cube_means(x)
[,1] [,2] [,3]
[1,] 2 11 20
[2,] 5 14 23
[3,] 8 17 26
基本上我想得到输出中的USERS = LOAD 'hbase://some_table' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('s:*', '-caster HBaseBinaryConverter --limit some_limit') AS (user_map:map[chararray]);
值。但我不确定如何从这个架构中分解它们。任何帮助将不胜感激。
为了更多地解释我的问题,或许我对USERS
模式(以及如何操纵它)的理解缺乏
编辑我想要的预期输出是将所有([n1#{"s":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433260638000}},n2#{"s":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433692638000}},n22#{"segment":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433260638000}},n3#{"s":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433692638000}},n4#{"segment":{"added": 1430668638000, "lastseen": 1430668638000, "expires": 1433692638000}}])
([n8#{"s":{"added": 1428792426000, "lastseen": 1428792426000, "expires": 1431816426000}},n9#{"segment":{"added": 1428792426000, "lastseen": 1428792426000, "expires": 1431816426000}},n11#{"segment":{"added": 1428792426000, "lastseen": 1428792426000, "expires": 1431816426000}}])
信息存储到名为n*
的变量中。这样,当我map:[chararray]
时,我会得到以下内容
n*
答案 0 :(得分:1)
能够通过编写python UDF来回答我自己的问题。在Pig中,调用看起来像这样
N_S = FOREACH USERS GENERATE my_udfs.translate_map(user_map)
我的python udf看起来像
@outputSchema("doc:chararray")
def translate_map(input):
n_str = ""
for k, v in input.items():
n_str += str(key)
n_str += " "
return n_str