将 xlsx 文件加载到猪关系中
Posted
技术标签:
【中文标题】将 xlsx 文件加载到猪关系中【英文标题】:Loading a xlsx file into pig relation 【发布时间】:2017-06-15 16:47:32 【问题描述】:我正在尝试。该文件可以包含带有“,”的数据作为数据的一部分。所以我无法将其转换为 CSV 并加载它。所以我试图将 xlsx 文件加载到 pig 关系中,并将其用于进一步处理。
但我不确定如何。我尝试了下面给出的一些选项,但没有成功。当我转储数据时,它没有给出任何可读的输出。
xlsx 文件中的样本数据
ColumnA ColumnB ColumnC
IN 003 倡导者
IN 004 商业
IN 005 会计师,加利福尼亚
REGISTER /usr/lib/pig/piggybank.jar;
Data = load '/user/cloudera/kbk/occcd.xlsx' using org.apache.pig.piggybank.storage.CSVExcelStorage(',', 'NO_MULTILINE', 'NOCHANGE', 'SKIP_INPUT_HEADER') as (country:chararray,ccode:chararray;cdesc;chararray);
和
a = load '' Using PigStorage('\t') As (country:chararray,ccode:chararray;cdesc;chararray);
任何帮助将不胜感激。
谢谢。
【问题讨论】:
在 Excel 中,您可以选择将文件保存为制表符分隔的“文本(制表符分隔)(*.txt)”。然后将该制表符分隔的文件加载到 Pig 中,使用制表符(默认)作为字段分隔符。这样,数据中的逗号就会被保留。 感谢您的建议。我去看看。 【参考方案1】:您的架构存在语法问题。字段:数据类型声明必须用“:”和字段“,”分隔。
(country:chararray,ccode:chararray;cdesc;chararray);
改成
(country:chararray,ccode:chararray,cdesc:chararray);
【讨论】:
嗨,这是一个错字。我已经检查了这里给出的正确语法。但我没有得到任何正确的输出。以上是关于将 xlsx 文件加载到猪关系中的主要内容,如果未能解决你的问题,请参考以下文章