无法从S3 bucket(拼花文件)将数据加载到EMR上的清管器中



我想在EMR上从Pig中的s3 bucket加载数据,我的源文件格式是parquet:

下面的命令我已经使用:

A = LOAD 's3://test-1/icted/emp_db/emp_tb' 
USING parquet.pig.ParquetLoader(header__change_seq:chararray,header__change_oper:chararray,header__change_mask:chararray,header__stream_position:chararray,header__operation:chararray,header__transaction_id:chararray,header__timestamp:chararray,policylangaccessind_afi:chararray,loadcommandid:double,previousgroupid:double,enddate:chararray,assignedbyuserid:double,dstcd_afi:chararray);

我无法加载数据获取以下是错误:

ERROR pig.PigServer: exception during parsing: Error during parsing. <file test.pig, line 20, column 2>  mismatched input 'header__change_seq' expecting RIGHT_PAREN

需要帮助。

两件事:

您应该在emrorg.apache.parquet.pig.ParquetLoader()上使用完整的类路径;不需要向它传递模式,拼花地板阅读器将为您推断它。

确保您使用的pig代码版本与拼花地板文件的版本兼容(拼花地板工具可用于查找所用拼花地板的版本(

只需尝试使用最新版本https://mvnrepository.com/artifact/org.apache.parquet/parquet-pig-bundle/1.10.0

REGISTER parquet-pig-bundle-1.10.0.jar;

缺少''

A = LOAD 's3://test-1/icted/emp_db/emp_tb' USING parquet.pig.ParquetLoader('header__change_seq:chararray,header__change_oper:chararray,header__change_mask:chararray,header__stream_position:chararray,header__operation:chararray,header__transaction_id:chararray,header__timestamp:chararray,policylangaccessind_afi:chararray,loadcommandid:double,previousgroupid:double,enddate:chararray,assignedbyuserid:double,dstcd_afi:chararray');

ParquetLoader后缺少as

A = LOAD 's3://test-1/icted/emp_db/emp_tb' USING parquet.pig.ParquetLoader AS (header__change_seq:chararray,header__change_oper:chararray,header__change_mask:chararray,header__stream_position:chararray,header__operation:chararray,header__transaction_id:chararray,header__timestamp:chararray,policylangaccessind_afi:chararray,loadcommandid:double,previousgroupid:double,enddate:chararray,assignedbyuserid:double,dstcd_afi:chararray);

最新更新