将 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 文件加载到猪关系中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Xamarin iOS 在 UIWebView 中加载本地 xlsx 文件

在 R 中加载 xlsx 库时出错 [重复]

单击超链接时能够防止/停止在赛普拉斯中加载“页面加载”

从文件中加载数据以及异常处理

如何将压缩包加载到猪

将图像加载到猪