从文件名中提取时间戳并使用 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 将其添加到新列(例如日期)中的主要内容,如果未能解决你的问题,请参考以下文章