蜂巢:如何处理包含不固定数量字段的文件?

时间:2018-11-22 08:38:05

标签: hadoop hive

处理HDFS上的一个文件,该文件包含用','分隔的不同数量的字段。例如:

uid1, eid01, para1, para2, para3,para4,para5,timestamp
uid1, eid12, para56, para57, timestamp
uid3, eid42, para102,timestamp

字段数不固定。

现在,我想将这些数据放入一个具有4列的Hive表中,并将'para..'的所有字段归为一个列,例如:

  uid    eid              para                  datatime
  uid1  eid01  para1, para2, para3,para4,para5  timestamp
  uid1  eid12  para56, para57                   timestamp
  uid3  eid42  para102                          timestamp

数据量太大,以至于我无法使用AWK之类的工具来处理它。还有其他解决方案吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  1. 创建一个临时配置表,例如t_data_tmp(line string),它只有一列。将hdfs文件中的数据加载到t_data_tmp,每行将是一行。

  2. 使用您的架构创建配置单元表t_data,并插入覆盖的t_data作为从t_data_tmp中选择的内容

当选择表格t_data_tmp时,对字符串(position,substr)使用蜂巢函数以找出每一列的值(使用第二个逗号和最后一个逗号作为分隔符)