Taiwan Hadoop Forum http://forum.hadoop.tw/ |
|
資料處理問題 http://forum.hadoop.tw/viewtopic.php?f=7&t=38310 |
第 1 頁 (共 1 頁) |
發表人: | GGG [ 2016-03-28, 18:39 ] |
文章主題 : | 資料處理問題 |
請問各位大大 小的在研究之初便有一個很大的疑問 假如有一筆資料龐大到EXCEL無法開啟 那麼無論是匯入MYSQL或是HIVE中 因為無法得知EXCEL中的COLUMN 因此無法在HIVE或MYSQL中創建相對應的COLUMN 再進行匯入的動作 那麼想請問實際再遇到如此的情況中 是如何進行資料匯入? 請各位大大幫忙解惑Q_Q |
發表人: | jazz [ 2016-03-30, 00:02 ] |
文章主題 : | Re: 資料處理問題 |
GGG 寫: 請問各位大大 小的在研究之初便有一個很大的疑問 假如有一筆資料龐大到EXCEL無法開啟 那麼無論是匯入MYSQL或是HIVE中 因為無法得知EXCEL中的COLUMN 因此無法在HIVE或MYSQL中創建相對應的COLUMN 再進行匯入的動作 那麼想請問實際再遇到如此的情況中 是如何進行資料匯入? 請各位大大幫忙解惑Q_Q 不太懂,首先,格式如果是「純文字」,例如 CSV 好歹知道有多少「欄」吧?例如,總欄位個數是 5 萬個? 這在 Hive 也不會無法處理啊~頂多就是名稱用 col1, col2, col3, ...., col50000 代表每一欄。 Schema 是 Schema, Schema 決定 Column (欄) Row 是 Row (每一筆) 假設有 CSV 有 100 萬行(row),每行有 5 萬個整數值(Ex. 1,2,3,.....,50000) 那用 Hive 就是 create table ( col1 INT, col2 INT, ..... col50000 INT ) 這樣就可以解啊。 你若是問題是那這個語法怎麼產生?那也只好用程式產生啊~ 像這個 SQL 就是我用程式產生的 https://gist.github.com/jazzwang/c9e71a2a051ccd4ac418 那如果每一行的資料型態不固定呢?例如:有整數、有浮點數、有字串 那就是用程式判斷囉,根據「分隔符號(例如逗點或跳格符合)」將單一行斷開 得到的每一欄,用正規表示法,判斷有沒有「小數點」, 若有,型態就是浮點數 FLOAT 若沒有,判斷是否全部都是「數字」 若全是數字,那型態就是整數 INT 若非全是數字,那型態就先定為字串 STRING 實務上就用這些手法,來處理超大維度的資料囉~ - Jazz |
發表人: | GGG [ 2016-04-06, 16:21 ] |
文章主題 : | Re: 資料處理問題 |
不是很懂, 意思是業界匯入表時,都會放棄columns的名字嗎? 因為若沒有columns的名字,怎麼得知該欄內的值意義為何? 不知意義為何,該如何進行下一步的分析資料呢? 搜哩~傳達不清, 麻煩大大了。 |
發表人: | jazz [ 2016-04-09, 16:10 ] |
文章主題 : | Re: 資料處理問題 |
GGG 寫: 不是很懂, 意思是業界匯入表時,都會放棄columns的名字嗎? 因為若沒有columns的名字,怎麼得知該欄內的值意義為何? 不知意義為何,該如何進行下一步的分析資料呢? 搜哩~傳達不清, 麻煩大大了。 實際上並沒有「放棄」column name,實務上比較怕的是多個表格有相同的 column name 吧? 有一些 CSV 第一行會有 header 提供 column name 代碼: solt_id, w0001_s1, w0001_s2, ....., w1508_s1, w1508_s3 20160409157432,5031.89, 7342.88, ........, 1604.50, 4516.07 這樣也可以用程式把 header 轉成 HiveQL 的 create table 語法啊~ 況且,column name 也不是每一家都會用可以直接理解的命名方式。 以前看過某 ERP 軟體的 Table 都是 MX001, TA001 這種 鐵定要搭配其他資訊來說明那一欄是甚麼意義,那叫做 water_temperature 跟命名為 col_050 有差嗎? 只要知道 col_050 是水溫, 那還是可以作分析啊。 - Jazz |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |