2016-07-28 54 views
1

最近我注意到,無論何時我使用Sqoop從SQL數據庫獲取數據,所有日期時間字段都會轉換爲bigint(epoch * 1000)而不是String。停止sqoop從datetime轉換爲bigint

重要提示:我以拼花地板的形式儲存。

我一直在嘗試一堆像"--map-column-java"這樣的sqoop標誌,但我不想爲數以千計的表中的數百個列手動定義它。

我錯過了哪些標記來防止此sqoop行爲?

看來,sqoop沒有這樣做時,以純文本存儲。

+0

是純文本導入sqoop被轉換日期時間爲字符串 –

+0

如何獲得sqoop以這樣的表現木地板文件以及呢? – Havnar

+0

Hanvar我沒有使用sqoop將數據存儲在parquet文件中 –

回答

2

與其讓sqoop做它的奧術魔法我的表,我決定做以下幾點:

  1. 攝取到一個臨時表,存儲爲文本。
  2. 創建一個表(如果不存在)之類的臨時表,存儲爲實木複合地板
  3. 插入覆蓋存儲臨時表到拼花存儲表

這允許適當日期格式,而不與麻煩文本(可能不存在)配置和設置調整在Sqoop。

唯一tradoff是,它的速度稍慢