首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pig将数据读取为databytearray

Pig将数据读取为databytearray
EN

Stack Overflow用户
提问于 2015-02-23 19:15:22
回答 1查看 115关注 0票数 0

嘿,伙计们,我还有一个问题,我只是不能理解猪的行为

我将数据加载到pig中,经过一些转换后,在hdfs(/user/sga/transformeddata)上使用PigStorage()存储数据。

但是当我从/user/sga/transformeddata位置加载数据并执行

代码语言:javascript
复制
temp = load '/user/sga/transformeddata' using PigStorage();

gen = foreach temp generate page_type;

dump gen;

获取以下错误:

databytearray不能强制转换为java.lang.String

但如果我这么做了

代码语言:javascript
复制
gen = foreach temp generate *;

   dump gen;

它工作正常

任何帮助我们理解这一点都是非常感谢的。

根据需要提供代码:

代码语言:javascript
复制
STORE union_of_all_records INTO '/staged/google/data_after_denormalization' using PigStorage('\t','-schema');

union_of_all_records是pig中的别名。

现在,另一个脚本将使用此数据

代码语言:javascript
复制
lookup_data =
        LOAD '/staged/google/page_type_map_file/' using PigStorage() AS (page_type:chararray,page_type_classification:chararray);

load_denorm_clickstream_record =
        LOAD '/staged/google/data_after_denormalization' using PigStorage('\t','-schema');

并在这两个别名上连接

代码语言:javascript
复制
denorm_clickstream_record = LIMIT load_denorm_clickstream_record 100;
join_with_lookup =
    JOIN denorm_clickstream_record BY page_type LEFT OUTER, lookup_data BY page_type;

step x :    final_output =
        FOREACH join_with_lookup
                GENERATE denorm_clickstream_record::page_type as page_type;

在步骤x,我得到了上面的错误。

EN

回答 1

Stack Overflow用户

发布于 2015-02-23 20:59:17

我认为你必须选择:

1)你必须告诉Pig数据的模式。例如:

代码语言:javascript
复制
temp = load '/user/sga/transformeddata' using PigStorage() AS (page_type:chararray);

2)当您第一次存储数据时,告诉Pigstorage也存储模式信息。PigStorage('\t', '-schema');当您像上面那样加载数据时,PigStorage应该从模式信息中读取模式。

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

https://stackoverflow.com/questions/28672470

复制
相关文章

相似问题

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