在pig中配置load函数

jfgube3f  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(336)

在hdfs=>/user/xyz//part-m-00000中输入文件
文件内容:-
100002300,汤姆,彼得,工程师,地址:加利福尼亚州5巷3号楼,邮编:10021
10000031,汤姆,约翰,医生,加利福尼亚州2巷2号楼,邮编:10021
10000432,汤姆,吉姆,工程师,地址:加利福尼亚州1号车道1号楼,邮编:10021
邮编:100005033,加利福尼亚州2号车道2号楼,邮编:10021
100006034,tom,peter,eng,加利福尼亚州6巷6号楼,邮编:10021
架构文件-
登记号,名,姓,资格,地址1,地址2,城市,邮编
有没有可能做一个负荷follow:-
输入=使用pigstorage(',')加载'/user/xyz//part-m-00000';
sf=加载'user/xyz//sf.txt';
x=使用pigstorage(',')作为(sf)加载“输入”;
它不工作请注意,我不想硬编码字段名
感谢您的快速帮助,谢谢!!

oprakyz7

oprakyz71#

pigstorage有第二个构造函数,它接受多个选项,其中一个是-schema。根据文档,创建一个隐藏文件.pig\u schema,其中包含您的模式,并在加载数据时从中加载您的模式。更多细节在这里https://pig.apache.org/docs/r0.10.0/api/org/apache/pig/builtin/pigstorage.html
以下是步骤:您需要做的第一件事是手动创建模式

// Load data by specifying schema
A = LOAD 'data' USING PigStorage(',') AS (name:chararray, amount:float);
// Now store data in with -schema option to create schema
STORE A INTO 'output' USING PigStorage(',', '-schema');
// above statement will create .pig_schema file in "output" directory. copy this file to your source directory 'data'
Now load data without specifying Schema

A_WITHOUT_SCHEMA = LOAD 'data' USING PigStorage(',');

// view the schema of relation by issuing describe statement.
DESCRIBE A_WITHOUT_SCHEMA;

// The output should be something like 
{name: chararray, amount: float}

我希望这能澄清问题的解决办法。

相关问题