首页 > 解决方案 > Hive:如何处理包含不固定数量字段的文件?

问题描述

处理HDFS包含不同字段数的文件,这些字段由“,”分隔。例如:

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

字段数不固定。

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

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

数据量太大,我无法使用AWK. 还有其他解决方案吗?

任何帮助表示赞赏。

标签: hadoophive

解决方案


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

  2. 使用您的架构创建一个配置单元表 t_data,并插入覆盖 t_data 作为 select from t_data_tmp

when select form t_data_tmp, using hive functions for string(position, substr) to figure out value for each column(using the second comma and last comma as the splitter)


推荐阅读