从文件名中提取时间戳并使用 Pig 将其添加到新列(例如日期)中

Posted

技术标签:

【中文标题】从文件名中提取时间戳并使用 Pig 将其添加到新列(例如日期)中【英文标题】:Extract timestamp from filename and add it in new column(say,date) by using Pig 【发布时间】:2017-09-20 14:19:54 【问题描述】:

我有一个名为 YYYYMMDD_claims_portal.csv 的文件,我只需要 YYYYMMDD 部分并将这个值存储在新列中(比如日期)。

之前我们有 3 列:Claim,User,ID。现在我需要根据文件再添加一个值为YYYYMMDD 的日期列。

【问题讨论】:

我从问题中删除了 “这是紧急的” 评论。请看meta.***.com/q/326569/7605325 【参考方案1】:

input__file__name


演示

狂欢

[]$ mkdir mytable
[]$ cat>mytable/20170918_claims_portal.csv
1
2
[]$ cat>mytable/20170919_claims_portal.csv
3
[]$ cat>mytable/20170920_claims_portal.csv
4
5
6

蜂巢

create external table mytable (i int) stored as textfile
;

select  i
       ,regexp_extract(input__file__name,'(\\d8)_claims_portal.csv',1) as dt 
       
from    mytable
;

+----+-----------+
| i  |    dt     |
+----+-----------+
| 4  | 20170920  |
| 5  | 20170920  |
| 6  | 20170920  |
| 3  | 20170919  |
| 1  | 20170918  |
| 2  | 20170918  |
+----+-----------+

【讨论】:

感谢您的及时回复。我肯定会试试这个..但是你能告诉我这里的 input__file__name 是什么吗,我的意思是它是我们从中派生 YYYYMMDD_claims_portal.csv 文件或其他东西的表名。非常感谢。 嘿..谢谢@Dudu ..知道了..它对我有用..谢谢。

以上是关于从文件名中提取时间戳并使用 Pig 将其添加到新列(例如日期)中的主要内容,如果未能解决你的问题,请参考以下文章

Python - 从列中提取/复制分隔文本到新列 xlsx

从文件中提取数据并使用powershell将其分类到新文件中

具有表示集合列表的字符串值的列,将相关信息提取到新列

列中所有值到新列的最大值

Power BI 查询 - 将分隔符之间的文本提取到新列

如何通过读取shell脚本中的csv文件来将2列的总和添加到新列中