如何使用hadoop明智地读取CSV文件?

时间:2014-03-14 08:52:07

标签: java csv hadoop

我正在尝试读取不包含昏迷分隔值的csv文件,这些是纳斯达克股票的列,我想读取特定列,假设(第3个),不知道,如何获取列项。是否有任何方法可以读取hadoop中的列式数据?请帮忙。

我的CSV文件格式为:

exchange    stock_symbol    date    stock_price_open    stock_price_high    stock_price_low stock_price_close   stock_volume    stock_price_adj_close
NASDAQ  ABXA    12/9/2009   2.55    2.77    2.5 2.67    158500  2.67
NASDAQ  ABXA    12/8/2009   2.71    2.74    2.52    2.55    131700  2.55

在这里编辑:

A栏:交换 B栏:stock_symbol C栏:日期 D栏:stock_price_open E栏:stock_price_high

,同样。

这些是列,而不是逗号分隔值。我需要以列为单位阅读此文件。

2 个答案:

答案 0 :(得分:1)

Pig中,它将如下所示:

Q1 = LOAD 'file.csv' USING PigStorage('\t') AS (exchange, stock_symbol, stock_date:double, stock_price_open, stock_price_high, stock_price_low, stock_price_close, stock_volume, stock_price_adj_close);
Q2 = FOREACH Q1 GENERATE stock_date;
DUMP C;

答案 1 :(得分:-1)

您可以尝试格式化Excel工作表,例如使用以下公式将列添加到单个文本中:

=CONCATENATE(A2,";",B2,";",C2,";"D2,";",E2,";",F2,";",G2,";",H2,";",I2)

并按所需的分隔符连接这些列,我在这里使用了;。用你想要的东西。