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

ehxuflar  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(315)

处理文件 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 . 还有别的解决办法吗?
感谢您的帮助。

eni9jsuy

eni9jsuy1#

创建一个临时配置单元表,比如t\u data\u tmp(行字符串),它只有一列。将hdfs文件中的数据加载到t\u data\u tmp,每行一行。
用您的模式创建一个配置单元表t\u data,并插入overwrite t\u data作为select from t\u data\tmp
当选择form t\u data\u tmp时,对string(position,substr)使用配置单元函数来计算每列的值(使用第二个逗号和最后一个逗号作为分隔符)

相关问题