我是新来的 Pig
我有一个500kb的测试数据样本,我需要将它乘以几倍,以使文件的大小更大。我的数据中的单行如下:
( card_description:chararray,
transaction_date:chararray,
merchant_name:chararray,
merchant_city:chararray,
transaction_amount:float
) ;
我只想改变一下 transaction_amount
以及 transaction_date
对每行执行多次,然后将所有结果合并为一个大文件。
我在努力改变现状 transaction_date
.
文件中的日期值为
27/05/2010 00:00
r1 = FOREACH data GENERATE card_description,ToDate(transaction_date),merchant_name,merchant_city,
ROUND(RANDOM()*5)*transaction_amount;
result =union data,r1;
为了改变交易日期,我想使用 AddDuration
功能,但在试图转换 chararray
至 date
,我面临与格式相关的问题,无法理解解决方案。
有人能指引吗?
1条答案
按热度按时间holgip5t1#
在检查了可以调用
ToDate
,当前正在调用ToDate
作为:您的格式不是以毫秒为单位的,也不遵循iso8601格式。你应该像这样调用它:
哪里
format
是遵循这些规则的模式字符串。因此,
ToDate
应该这样称呼:为了
AddDuration
,请记住,提供给它的第二个参数必须是iso 8601格式的字符串。请务必阅读链接,以便正确格式化字符串。