从oracle检索数据时的Date to Timestamp问题

时间:2019-04-24 02:13:37

标签: oracle hive sqoop

我正在从Oracle到hdfs进行sqoop导入,并以镶木地板格式创建配置单元表。

我在Oracle表(mm/dd/yyyy格式)中有一个日期字段,我需要在蜂巢中引入时间戳格式(yyyy-mm-dd hh24:mi:ss)。

我在sqoop选择查询中使用了cast(xyz_date as Timestamp),但在Parquet文件中将其另存为Long类型。

我检查了配置单元表,并将NULL存储在配置域表xyz_date中。 我不想将其存储为字符串。请帮忙。

system sqoop import -D mapDateToTimestamp=true \ --connect \ --username abc \ --password-file file:location \ --query "select X,Y,TO_DATE(to_char(XYZ,'MM/DD/YYYY'),'MM/DD/YYYY') from TABLE1 where $CONDITIONS" \ --split-by Y \ --target-dir /location \ --delete-target-dir \ -as-parquetfile \ --compress \ --compression-codec org.apache.hadoop.io.compress.SnappyCodec \ --map-column-java Y=Long

这是我的蜂巢表格式:

CREATE external TABLE IF NOT EXISTS abc ( X STRING, Y BIGINT, XYZ TIMESTAMP ) STORED AS PARQUET LOCATION '/location' TBLPROPERTIES ("parquet.compression"="SNAPPY"); 

0 个答案:

没有答案