如何讀取HDFS上的csv/tsv檔案的Timestamp列 - Qiita
如何讀取放置在 HDFS 上的 csv/tsv 檔案的時間戳列,當一個包含 Timestamp 型別字串列的 csv/tsv 檔案被放置在 HDFS 上,讀入一個表,然後需要將該列插入另一個表的過程。我想知道 csv / tsv 檔案的 Timestamp 型別字串是否可以像 Hive 的 Timestamp 型別一樣讀取?
發現:
- 如果您使用的是 Hive 1.2.0 或更高版本,請按照https://issues.apache.org/jira/browse/HIVE-9298 中所述格式化每個表的時間戳。
- 在此之前,為了將包含 Timestamp 型別字串列的 csv/tsv 檔案讀取為外部表,最好將其轉換為 unixtime 並輸出。並且當插入到另一個表中時,它會透過 Hive 的查詢轉換為 Timestamp 型別。
1. 如果您使用的是 Hive 1.2.0 或更高版本
如果建立了表,將時間戳格式設定為讀取csv/tsv檔案的表的serdeproperty,如下所示:
ALTER TABLE hogehoge_table SET SERDEPROPERTIES ("timestamp.formats"="yyyy-MM-dd HH:mm:ss");
從現在開始建立表時,最好使用 DDL 進行設定。
CREATE EXTERNAL TABLE hogehoge_table ( column_1 STRING, column_2 INT, target_column TIMESTAMP ) PARTITIONED BY ( partition_column STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' WITH SERDEPROPERTIES ( "timestamp.formats"="yyyy-MM-dd HH:mm:ss" ) LOCATION '<your hdfs file location>' ; |
在任何情況下,target_column 都可以選擇為 Hive 的時間戳格式。
2. Hive 1.2.0以前版本
建立表讀取csv/tsv檔案時,設定為unixtime格式而不是Timestamp型別的字串。
CREATE EXTERNAL TABLE hogehoge_table ( column_1 STRING, column_2 INT, target_column BIGINT ) PARTITIONED BY ( partition_column STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' LOCATION '<your hdfs file location>' ; |
將它插入另一個表時,它會被 SELECT 語句轉換:
INSERT OVERWRITE TABLE fugafuga_table PARTITION (partition_column = 'aaa') SELECT column_1 ,column_2 ,CAST(FROM_UNIXTIME(target_column, 'yyyy-MM-dd HH:mm:ss') AS TIMESTAMP) AS target_column FROM hogehoge_table WHERE partition_column = 'aaa' |
相關文章
- 如何獲取HDFS上檔案的儲存位置
- iOS讀取.csv檔案iOS
- csv檔案的寫入和讀取
- q:一個可直接在 CSV/TSV檔案上執行SQL的開源專案SQL
- Java API 讀取HDFS的單檔案JavaAPI
- python 讀取csv檔案Python
- HDFS讀檔案過程分析:讀取檔案的Block資料BloC
- HDFS讀檔案過程分析:獲取檔案對應的Block列表BloC
- R語言 - 讀取CSV檔案報錯R語言
- python 使用字典讀取CSV檔案Python
- Jmeter之讀取csv檔案踩坑記JMeter
- jmeter 引數化 csv外掛的讀取檔案 bin目錄JMeter
- php如何上傳txt檔案,並且讀取txt檔案PHP
- C語言讀取寫入CSV檔案 [一]基礎篇C語言
- Python 高階程式設計:深入解析 CSV 檔案讀取Python程式設計
- iOS如何讀取.db檔案iOS
- 基於 java 註解的 csv 檔案讀寫框架Java框架
- VB讀取文字檔案的例子:逐行讀取
- 如何有效恢復誤刪的HDFS檔案
- csv格式檔案在win10上如何開啟_win10怎麼開啟csv格式檔案Win10
- 讀取CSV資料
- go–讀取檔案的方式Go
- Python專案實踐:串列埠字串資料的讀取、分割與儲存到csv檔案Python串列埠字串
- python如何讀取大檔案Python
- PHP如何快速讀取大檔案PHP
- python讀取網路上的csv文Python
- phpexcel讀取excel的xls xlsx csv格式PHPExcel
- 源資料檔案(.csv)中的空格串和空串對pandas讀取結果的影響
- 請教各位,如何讀取war包中的檔案
- 5種高大上的yml檔案讀取方式,你知道嗎?
- XMl 檔案屬性的讀取XML
- Java屬性檔案的讀取Java
- 如何使用File APIs來讀取檔案API
- 【轉】PHP如何快速讀取大檔案PHP
- ServiceNow如何匯出豎線分割的CSV檔案?
- spark直接讀取本地檔案系統的檔案Spark
- 獲取上傳檔案的大小
- CSV檔案讀取效能大決戰:Julia 、Python與R語言 - DeepakPythonR語言