- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我对 PigStorage
及其 -tagPath
选项有一个有趣的行为,我不知道我是否做错了什么(模式定义错误?)或如果这是 Pig 中的限制/错误。
我的文件看起来像这样(最基本的,我能想到的):
A
B
现在我可以像这样加载和子选择这个文件了:
vals = LOAD '/user/guest/test.txt'
USING PigStorage(';') AS (char: chararray);
DUMP vals
one_column = FOREACH vals GENERATE char;
DUMP one_column
结果:
(A)
(B)
(A)
(B)
但是,当我尝试使用 -tagPath
获取文件路径时(我在访问整个数据文件夹时需要它),数据被正确加载到第一个变量中,但我无法进行子选择其中的一列。
vals = LOAD '/user/guest/test.txt'
USING PigStorage(';', '-tagPath')
AS (filepath: chararray, char: chararray);
DUMP vals
one_column = FOREACH vals GENERATE char;
DUMP one_column
结果:
(hdfs://sandbox.hortonworks.com:8020/user/guest/test.txt,A)
(hdfs://sandbox.hortonworks.com:8020/user/guest/test.txt,B)
(hdfs://sandbox.hortonworks.com:8020/user/guest/test.txt)
(hdfs://sandbox.hortonworks.com:8020/user/guest/test.txt)
但是,当我第一次读取没有模式的数据,然后使用 FOREACH
添加模式时,它再次正常工作:
vals = LOAD '/user/guest/test.txt'
USING PigStorage(';', '-tagPath');
vals_n = FOREACH vals GENERATE (chararray)$0 AS filepath, (chararray)$1 AS char;
DUMP vals_n
one_column = FOREACH vals GENERATE char;
DUMP one_column
结果:
(hdfs://sandbox.hortonworks.com:8020/user/guest/test.txt,A)
(hdfs://sandbox.hortonworks.com:8020/user/guest/test.txt,B)
(A)
(B)
那么有什么办法,可以在LOAD
阶段同时使用-tagPath
和schema吗?
最佳答案
发生这种情况是因为 pig 会尝试自动找出脚本中使用了哪些列并仅加载这些列。当我们使用 -tagFile
或 -tagPath
时,这似乎变得困惑了。
解决方案是run the pig script without this column detection :
pig -x mapreduce -t ColumnMapKeyPrune
关于hadoop - 不能在 PigStorage LOAD 中同时使用 -tagPath 和 schema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31809844/
我在通过 pig 将日志文件加载到 hdfs 时感到震惊。基本上,此日志文件具有用于分析的 WebSphere Server 异常。 现在,在分解异常详细信息的组件并加载到架构中时,我无法将正则表达式
我有一个逗号分隔的文本文件,例如 1,abc,1, 2,def,1,2,3,4 3,ghi,1,2 4,jkl,1,5,6,7,8,9 5,mno 文本文件将始终具有前两个值,但在第二个逗号之后将具有
我在我的 pig 脚本中使用了这些行: set default_parallel 20; requests = LOAD ‘/user/me/todayslogs.gz’ USING customPa
我在 HDFS 中加载了 2 列 CSV 文件。第 1 列是型号名称,第 2 列是以美元为单位的价格。 示例 - 型号:IE33,价格:52678.00 美元 当我运行以下脚本时,价格值全部返回为两位
在 pig 中使用加载数据流步骤与使用(使用 PigStorage)和不使用它有什么区别? 想知道以下步骤之间的区别。 movie2 = load 'movie/part-m-00000' as (m
我在一个 txt 文件中有这个 smaple 数据集(格式:名字,姓氏,年龄,性别) (Eric,Ack,27,M),(Jeremy,Ross,29,F) (Jenny,Dicken,27,F),(V
Apache Pig v0.7 可以读取 gzipped 文件而无需我额外的努力,例如: MyData = LOAD '/tmp/data.csv.gz' USING PigStorage(',')
我一直在尝试加载数据(CSV),例如: txt = IPHONE,GA,US,CN,[bucket#A,type#user,jailbreak#No],app_talkingtom,ios7 使用 A
我对 PigStorage 及其 -tagPath 选项有一个有趣的行为,我不知道我是否做错了什么(模式定义错误?)或如果这是 Pig 中的限制/错误。 我的文件看起来像这样(最基本的,我能想到的):
Amazon EMR-4.5、Hadoop 2.7.2、Pig 0.14 我想在加载后使用 -tagFile 选项将文件名字段和选定字段投影到新关系。结果似乎没有意义。示例: tagfile-test
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是一名优秀的程序员,十分优秀!