Shell 文件名提取并插入到列值配置单元中

Shell 文件名提取并插入到列值配置单元中,shell,hive,Shell,Hive,我有一个文件名为:akolp9app1a_170905_0000.txt 我需要拆分这些值 hostname= akolp9app1a date=170905 (convert into proper data format) 现在在配置单元中创建一个包含两列hostname和date的表,并将这些值插入表中 有什么建议吗 谢谢。您可以使用虚拟列,例如输入文件名。它给出了输入文件的名称 然后,您可以在输入文件名字段上使用拆分(或)子字符串(或)regexp\u提取字符串函数,并创建主机名、日

我有一个文件名为:
akolp9app1a_170905_0000.txt

我需要拆分这些值

hostname= akolp9app1a

date=170905 (convert into proper data format)
现在在配置单元中创建一个包含两列hostname和date的表,并将这些值插入表中

有什么建议吗


谢谢。

您可以使用虚拟列,例如输入文件名。它给出了输入文件的名称

然后,您可以在输入文件名字段上使用拆分(或)子字符串(或)regexp\u提取字符串函数,并创建主机名、日期

示例:- 下面的select查询将日期字段值设置为170905,就像这样,使用字符串函数构建查询以提取主机名

 hive> select split(INPUT__FILE__NAME,'[\_]')[1] `date` from tablename;
使用insert语句将它们存储到单独的表中