hdfs—用于读取文件和定义复杂数据结构模式的经验法则

gcuhipw9  于 2021-06-24  发布在  Pig
关注(0)|答案(0)|浏览(267)

在pig中读取一个复杂的文件(即tuple和bag)并定义模式时,我感到困惑,
更确切地说,在读取文件时,我应该如何翻译{,(,和一个deliminator(例如|)。
例如,我无法用pig中的以下行来计算“complex泷7.txt”的内容:
(我正在做一个反向工程,我有这个例子,我正在尝试编写这个模式可以使用的文本文件)

a = LOAD '/user/maria_dev/complex_7.txt'  AS (f1:int,f2:int,B:bag{T:tuple(t1:int,t2:int)});

dump a; This command should produce the following output from complex_7.txt, so how shall this data must be stored in this file (i.e. complex_7.txt)?? This is my question.
10,1,{(2,3),(4,6)}
11,2,{(2,3),(4,6),(8,9)}
12,3,{(1,3)}

既然如此,在读取包含复杂模式的文件时,如何定义多个pigstorage,
例如,如果我有下面的文本文件(比如complex\u8.txt),我如何读取它?

1|2|{(2,3),(5,6)}, # I am not sure how the actual file must look like, but I may have a case that I may need to use multiple PigStorage separator.

我假设读取上述数据需要两个分隔符,一个表示“|”,另一个表示“,”(在元组中)。
更新:
这个答案帮助我解决了这一部分(即有多个分隔符):
使用多个分隔符加载数据*
因此,此文件的架构必须采用以下格式:
a=load'/user/maria\u dev/complex\u 7.txt'为(f1:int,f2:int,b:bag{t:tuple(t1:int,t2:int)});
所以我想我实际上想说的是,如何将{,),和deliminator从一个文件翻译成一个模式,从一个模式翻译成一个文件?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题