处理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
之类的工具来处理它。还有其他解决方案吗?
感谢您的帮助。
答案 0 :(得分:0)
创建一个临时配置表,例如t_data_tmp(line string),它只有一列。将hdfs文件中的数据加载到t_data_tmp,每行将是一行。
使用您的架构创建配置单元表t_data,并插入覆盖的t_data作为从t_data_tmp中选择的内容
当选择表格t_data_tmp时,对字符串(position,substr)使用蜂巢函数以找出每一列的值(使用第二个逗号和最后一个逗号作为分隔符)