首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Movielens向猪装载数据的问题

从Movielens向猪装载数据的问题
EN

Stack Overflow用户
提问于 2015-12-13 05:38:56
回答 1查看 214关注 0票数 1

我正试着把一些数据加载到猪身上:

记录:

代码语言:javascript
复制
11::American President, The (1995)::Comedy|Drama|Romance

12::Dracula: Dead and Loving It (1995)::Comedy|Horror

使用的脚本:

代码语言:javascript
复制
loadMoviesDs = LOAD '/Users/Prateek/Downloads/ml-10M100K/movies.dat' 
               USING PigStorage(':') 
               AS (Movieid:long, dummy1, Title:chararray, dummy2, Genere:chararray);

输出

代码语言:javascript
复制
 11,,American President, The (1995),,Comedy|Drama|Romance
 12,,Dracula,, Dead and Loving It (1995)

如何处理德古拉之后的冒号(:)-?

由于冒号,第二列被分割为2列,而且由于我们总共有3列,comedy|horror 12的最后一列没有加载。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-13 09:57:38

您可以使用REGEX_EXTRACT_ALL实现这一点。

以下是实现这一目标的代码:

代码语言:javascript
复制
A = LOAD '/Users/Prateek/Downloads/ml-10M100K/movies.dat' 
               AS (f1:chrarray); 
B = FOREACH A GENERATE REGEX_EXTRACT_ALL(f1, '(.*)::(.*)::(.*)');
C = FOREACH B GENERATE FLATTEN($0);
D = FOREACH C GENERATE $0 AS (MovieID:long), $1 AS (Title:chararray), $2 AS (Genre:chararray);
DUMP D;

我得到了以下输出(这是一个元组)。":“”德古拉“之后是完整的。

代码语言:javascript
复制
(11,American President, The (1995),Comedy|Drama|Romance)
(12,Dracula: Dead and Loving It (1995),Comedy|Horror)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34248335

复制
相关文章

相似问题

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