首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我们如何将Apache用于未格式化的数据?

我们如何将Apache用于未格式化的数据?
EN

Stack Overflow用户
提问于 2011-12-26 13:19:09
回答 2查看 4.6K关注 0票数 2

我想使用Apache pig,但到目前为止,我只分析了格式化的数据,如csv或逗号分隔等等。

但是,如果我有一些由';‘和'@&@’等分隔的数据,我如何处理呢?

就像我使用MapReduce时一样,在map中将数据拆分为";“,然后再用reduce中的"@&@”来分割数据。

另外,假设我们有一个具有第一个字段用户名的csv文件,它是由"FirstnameLastname“格式生成的,

代码语言:javascript
运行
复制
raw = LOAD 'log.csv' USING PigStorage(',') AS (username: chararray, site: chararray, viwes: int);

通过上面的例子,我们可以获得整个用户名,但是我如何获得名称和Lastname的不同呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-27 03:21:30

Java或Python可以在Pig中使用UDF做任何事情。Pig并不打算拥有一组详尽的处理功能,而只是提供基本的功能。Piggybank通过收集一堆社区贡献的UDF来填补定制代码的空白。有时候,银行就是没有你需要的东西。写UDF很简单,这是件好事。

  • 您可以编写一个自定义装载机,在加载时处理数据的独特结构。定制的load函数使用Java代码处理数据,并输出Pig正在寻找的结构化柱状格式。客户加载器的另一个优点是您可以指定加载模式,这样您就不必写出AS (...) A=使用log.csv(“任何”、“参数”)加载‘MyCustomLoader’;
  • 你可以写一个自定义评价函数。有时候,像SPLITTOKENIZE这样的函数还不够好。使用TextLoader逐行地获取数据,然后使用UDF解析该行并输出元组(然后可以将其扁平化为列)。 A=使用TextLoader() as加载‘TextLoader’(行:char数组);B= FOREACH生成平坦(CustomLineParser(行));
票数 4
EN

Stack Overflow用户

发布于 2011-12-26 16:54:19

也许您可以第二次使用STRSPLIT来拆分字符串:

此外,;也可以由\\u003B拆分

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8636129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档