Apache pig 用pig拉丁语从文件中读取元组

Apache pig 用pig拉丁语从文件中读取元组,apache-pig,Apache Pig,这是我们的一个例子 我在maria_dev中创建了一个tp.txt,它的日期相同(即 ) 并通过以下方式阅读: tp = LOAD 'tp.txt' as (t1:tuple(t1a:int, t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int)); 但当我在grunt中运行DUMP X时,我得到以下输出: ((3,8,9),) ((1,4,7),) ((2,5,8),) 我在这里做错了什么?加载语句默认假定字段是以制表符

这是我们的一个例子

我在maria_dev中创建了一个tp.txt,它的日期相同(即

) 并通过以下方式阅读:

tp = LOAD 'tp.txt' as (t1:tuple(t1a:int, t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int));           
但当我在grunt中运行DUMP X时,我得到以下输出:

((3,8,9),)
((1,4,7),)
((2,5,8),)

我在这里做错了什么?

加载语句默认假定字段是以制表符分隔的。您似乎在文本文件中使用空格。在不更改文件的情况下,您可以执行以下操作:

tp = LOAD 'tp.txt' USING PigStorage(' ') AS (t1:tuple(t1a:int, t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int));
或者,您可以用制表符替换文本文件中的空格,并保持load语句不变

((3,8,9),)
((1,4,7),)
((2,5,8),)
tp = LOAD 'tp.txt' USING PigStorage(' ') AS (t1:tuple(t1a:int, t1b:int,t1c:int),t2:tuple(t2a:int,t2b:int,t2c:int));