我必須使用Spark和Scala從Oracle導入表格到Hive,Oracle中的日期列看起來像這樣Oracle column date,我必須施放它轉換爲Hive中的dt_skey格式(YYYYMMDD)。 Hive中的表格格式爲Parquet。我怎樣才能做到這一點?我GOOGLE了很多,但我沒有找到任何解決方案。提前使用Spark配置單元在Hive中使用Spark配置單元格上下文格式的日期應該是YYYYMMDD(dt_skey)
0
A
回答
0
假設輸入數據
感謝的解釋是:YY-MM-DD(所以16-09-15意味着2016年09月15日),你可能需要一個轉變是這樣的:
select to_char(to_date (dt, 'yy-mm-dd'), 'yyyymmdd') from ...
例子:
with my_table (dt) as (select '16-09-15' from dual)
-- this creates a test table my_table with column dt and value as shown
select dt,
to_char(to_date (dt, 'yy-mm-dd'), 'yyyymmdd') as dt_skey
from my_table
;
DT DT_SKEY
-------- --------
16-09-15 20160915
你也可以直接操縱輸入字符串,但我強烈建議針對。在嘗試將它們推送到應用程序之前,翻譯日期和返回會在數據中捕獲無效的「日期」。另外,如果輸入字符串不一致(例如,如果允許類似16-9-15和16-09-15一樣),則字符串操作會變得複雜。
編輯:在對其原始問題的評論中,OP聲明dt在Oracle中已經是DATE格式。在這種情況下,它不應該被包裝在to_date()
之內 - 這將導致錯誤。相反,解決的辦法是更簡單,所有需要的是
select to_char(dt, 'yyyymmdd') from ...
相關問題
- 1. 使用spark創建配置單元外部表格
- 2. 在Spark中使用Hive上下文時出錯:對象配置單元不是包org.apache.spark.sql的成員
- 3. Spark配置單元格的目的是什麼?
- 4. 使用Spark從Oracle到配置單元的Tranfser數據使用Spark
- 5. 如何配置Hive使用Spark?
- 6. 配置單元的Spark SQL構建?
- 7. 使用spark sql將json數據加載到配置單元中
- 8. Spark SQLContext未找到配置單元表
- 9. 配置表格單元格
- 10. 使用jQuery在表單元格中匹配日期模式
- 11. 使用Spark JobServer spark不使用hive-site.xml上配置的mysql連接
- 12. 如何更改配置單元中的日期格式
- 13. cellForRowAtIndexPath和單元格配置
- 14. 如何配置Hive在Google Dataproc上使用Spark執行引擎?
- 15. 替換配置單元中給定特定格式的差異日期格式
- 16. Flex Spark Datagrid單元格1 *單元格2存儲在單元格3中
- 17. Spark上的Hive 2.1.1 - 我應該使用哪個版本的Spark
- 18. Impala或配備SPARK作爲執行引擎的配置單元?
- 19. 配置單元格數據類型爲hive表的最高日期
- 20. 在集羣模式下使用spark-submit共享配置文件
- 21. Spark Spark上的配置單元失敗,直接SELECT,但SELECT GROUP BY成功
- 22. 使用自動單元格高度配置TableView不會顯示單元格
- 23. 來自Apache Spark的外部配置單元中的查詢表格
- 24. 在配置單元中使用QUALIFY Row_Number
- 25. 在配置單元中使用Xpath
- 26. EMR Spark集羣模式配置單元問題
- 27. 如何使用配置單元上下文高效地查詢火花中的配置單元表?
- 28. 是否可以在Eclipse IDE中的Spark上運行配置單元?
- 29. SparkLauncher以用戶爲配置單元運行spark-submit with yarn-client
- 30. 配置單元使用mysql元代理
看來是輸入字符串格式,和你需要的輸出也字符串格式。 INPUT是一個大問題。沒有進一步的信息,16-09-15是什麼意思? 2015年9月16日或2016年9月15日?在Oracle表格中,你絕不應該把日期存儲爲字符串 - 這只是其中的一個原因。 – mathguy
您是否嘗試過使用Sqoop? – tbone
YY-MM-DD是oracle中的格式,oracle中的數據類型是DATE,輸入是DATE數據類型,我必須將其更改爲yyyymmdd格式,並且數據類型爲int。 – roh