create external table orders
(
order_id int
,cust_id int
,order_dtm string
)
row format delimited
fields terminated by ' '
location '/user/analyst/order'
tblproperties ('serialization.last.column.takes.rest'='true')
;
select * from orders
;
を-head
Create EXTERNAL table Orders(
order_id int,
cust_id int,
order_dtm TIMESTAMP)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION '/user/analyst/order/';
HDFSファイルを区切り
+-----------+----------+----------------------+ | order_id | cust_id | order_dtm | +-----------+----------+----------------------+ | 5000001 | 1133938 | 06-01-2008 00:03:35 | | 5000002 | 1131278 | 06-01-2008 00:27:42 | | 5000003 | 1153459 | 06-01-2008 00:49:37 | | 5000004 | 1159099 | 06-01-2008 01:05:28 | | 5000005 | 1020687 | 06-01-2008 01:08:36 | | 5000006 | 1187459 | 06-01-2008 01:11:09 | | 5000007 | 1048773 | 06-01-2008 01:36:35 | | 5000008 | 1064002 | 06-01-2008 01:36:52 | | 5000009 | 1096744 | 06-01-2008 01:49:46 | | 5000010 | 1107526 | 06-01-2008 03:07:14 | +-----------+----------+----------------------+
create view orders_v
as
select order_id
,cust_id
,from_unixtime(to_unix_timestamp(order_dtm,'MM-dd-yyyy HH:mm:ss')) as order_dtm
from orders
;
select * from orders_v
;
+-----------+----------+----------------------+
| order_id | cust_id | order_dtm |
+-----------+----------+----------------------+
| 5000001 | 1133938 | 2008-06-01 00:03:35 |
| 5000002 | 1131278 | 2008-06-01 00:27:42 |
| 5000003 | 1153459 | 2008-06-01 00:49:37 |
| 5000004 | 1159099 | 2008-06-01 01:05:28 |
| 5000005 | 1020687 | 2008-06-01 01:08:36 |
| 5000006 | 1187459 | 2008-06-01 01:11:09 |
| 5000007 | 1048773 | 2008-06-01 01:36:35 |
| 5000008 | 1064002 | 2008-06-01 01:36:52 |
| 5000009 | 1096744 | 2008-06-01 01:49:46 |
| 5000010 | 1107526 | 2008-06-01 03:07:14 |
+-----------+----------+----------------------+
**(1)** "は、NULLとして出力を示す" - NULLである単一の値を持つ単一のレコード?複数の行と1つの列にNULL値だけが含まれていますか?すべての列にNULL値だけが含まれていますか?区切り文字を確認するのではなく、**(4)**区切り文字は、区切り文字で区切られた区切り文字で区切られます。**(2)** ''/ t'' - スラッシュ(' \ t')スペースは、あなたのデータ(order_dtm)にスペースが含まれているので理にかなっていません。この特定のユースケースでは、それを処理する方法がありますが、それは悪い習慣です。 **(5)** ISOタイムスタンプ形式以外の形式 - 'yyyy-MM-dd HH:mm:ss [.S *]'はNULLを返す。 –
返事をありがとう。 – Deepak
@DuduMarkovitz ....返事をありがとう。 1)最後の列ORDER_DTMがNULL値を示していました。 2)それはタイプミスだった、私の元のクエリはバックスラッシュを持っていた。 3)私は推測していなかった、私はスプレッドシートでサンプルデータをテストしたのでスペースだったと知っていたが、私は問題を解決するために別のオプションを試していた4)理解した、5)理解する。離れてdownvote ...私は私の研究をした後に質問を投稿していた。 – Deepak