我想使用Apache pig
,但到目前为止,我只分析了格式化的数据,如csv或逗号分隔等等。
但是,如果我有一些由';‘和'@&@’等分隔的数据,我如何处理呢?
就像我使用MapReduce时一样,在map中将数据拆分为";“,然后再用reduce中的"@&@”来分割数据。
另外,假设我们有一个具有第一个字段用户名的csv文件,它是由"FirstnameLastname“格式生成的,
raw = LOAD 'log.csv' USING PigStorage(',') AS (username: chararray, site: chararray, viwes: int);
通过上面的例子,我们可以获得整个用户名,但是我如何获得名称和Lastname的不同呢?
发布于 2011-12-26 19:21:30
Java或Python可以在Pig中使用UDF做任何事情。Pig并不打算拥有一组详尽的处理功能,而只是提供基本的功能。Piggybank通过收集一堆社区贡献的UDF来填补定制代码的空白。有时候,银行就是没有你需要的东西。写UDF很简单,这是件好事。
AS (...)
A=使用log.csv(“任何”、“参数”)加载‘MyCustomLoader’;SPLIT
或TOKENIZE
这样的函数还不够好。使用TextLoader逐行地获取数据,然后使用UDF解析该行并输出元组(然后可以将其扁平化为列)。
A=使用TextLoader() as加载‘TextLoader’(行:char数组);B= FOREACH生成平坦(CustomLineParser(行));发布于 2011-12-26 08:54:19
也许您可以第二次使用STRSPLIT来拆分字符串:
此外,;
也可以由\\u003B
拆分
https://stackoverflow.com/questions/8636129
复制