【问题标题】:Loading a xlsx file into pig relation将 xlsx 文件加载到猪关系中
【发布时间】:2017-06-15 16:47:32
【问题描述】:

我正在尝试将 xlsx 文件加载到猪关系中。该文件可以包含带有“,”的数据作为数据的一部分。所以我无法将其转换为 CSV 并加载它。所以我试图将 xlsx 文件加载到 pig 关系中,并将其用于进一步处理。

但我不确定如何将 xlsx 文件加载到猪关系中。我尝试了下面给出的一些选项,但没有成功。当我转储数据时,它没有给出任何可读的输出。

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 中,使用制表符(默认)作为字段分隔符。这样,数据中的逗号就会被保留。
  • 感谢您的建议。我去看看。

标签: csv apache-pig


【解决方案1】:

您的架构存在语法问题。字段:数据类型声明必须用“:”和字段“,”分隔。

(country:chararray,ccode:chararray;cdesc;chararray);

改成

(country:chararray,ccode:chararray,cdesc:chararray);

【讨论】:

  • 嗨,这是一个错字。我已经检查了这里给出的正确语法。但我没有得到任何正确的输出。
猜你喜欢
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多