4

日時データ型である CurrentTime() を使用しています。ただし、chararrayとして必要です。私は次のものを持っています:

A = LOAD ...
B = FOREACH A GENERATE CurrentTime() AS todaysDate;

次のようなさまざまなアプローチを試しました。

B = FOREACH A GENERATE (chararray)CurrentTime() AS todaysDate;

ただし、常に ERROR 1052: Cannot cast datetime to chararray が表示されます。

どうすればこれができるか知っている人はいますか?ちなみに豚初心者です。前もって感謝します!

4

2 に答える 2

6

同様の問題があり、他の回答で説明されているようにカスタム UDF を使用したくありませんでした。私は Pig を初めて使用しますが、UDF の必要性を正当化するのはかなり基本的な操作のようです。このコマンドは私にとってうまく機能します:

B = FOREACH A GENERATE ToString(yourdatetimeobject, 'yyyy-MM-dd\'T\'HH:mm:ssz') AS yourfieldname;

SimpleDateFormat javadocを参照して、必要な形式を選択できます。

于 2014-10-03T13:10:18.033 に答える
3

変換を行うカスタム UDFを作成する必要があります(例: CurrentTime() implementationを参照)。または、回避策について同様のトピックに関する私の回答を確認してください。
AWS を使用している場合は、そのDATE_TIME UDF を使用してください。

于 2013-05-29T17:39:54.230 に答える