Apache pig 在pig中加载由双冒号::分隔的文件

Apache pig 在pig中加载由双冒号::分隔的文件,apache-pig,Apache Pig,以下是由双冒号(:)分隔的示例数据集 我想从上面的数据集中提取三个字段,分别是movieID、title和genre。我已经为此编写了以下代码 movies = LOAD 'location/of/dataset/on/hdfs ' using PigStorage('::') as (MovieID:int,title:chararray,genre:chararray); 但我有以下错误 ERROR org.apache.pig.tools.grunt.Grunt - ERROR

以下是由双冒号(:)分隔的示例数据集

我想从上面的数据集中提取三个字段,分别是movieID、title和genre。我已经为此编写了以下代码

movies = LOAD 'location/of/dataset/on/hdfs ' 
using PigStorage('::')
as 
(MovieID:int,title:chararray,genre:chararray);  
但我有以下错误

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to  parse:  
 <file script.pig, line 1, column 9> pig script failed to validate:
 java.lang.RuntimeException: could not instantiate 'PigStorage' with arguments '[::]' 
ERROR org.apache.pig.tools.grunt.grunt-错误1200:pig脚本无法解析:
pig脚本无法验证:
java.lang.RuntimeException:无法使用参数“[::]”实例化“PigStorage”
用法:您需要piggybank.jar来完成此操作

REGISTER '/path/to/piggybank.jar'
A = LOAD '/path/to/dataset' USING org.apache.pig.piggybank.storage.MyRegExLoader('([^\\:]+)::([^\\:]+)::([^\\:]+)') 
      as (movieid:int, title:chararray, genre:chararray);
输出:

(1,《玩具总动员》(1995年),动画片|儿童|喜剧)

用法:您需要piggybank.jar来完成此操作

REGISTER '/path/to/piggybank.jar'
A = LOAD '/path/to/dataset' USING org.apache.pig.piggybank.storage.MyRegExLoader('([^\\:]+)::([^\\:]+)::([^\\:]+)') 
      as (movieid:int, title:chararray, genre:chararray);
输出:

(1,《玩具总动员》(1995年),动画片|儿童|喜剧)


社会人士,并坚决同意这是不可接受的。请不要将此添加到您的问题中。当您使用PigStorage加载数据时,它只希望使用单个字符作为分隔符。社区和已明确同意这是不可接受的。请不要将此添加到您的问题中。当您使用PigStorage加载数据时,它只需要单个字符作为分隔符。