2015-03-30 105 views
0

當我們創建使用蜂巢擴展表

創建外部表的員工(名稱字符串,工資浮動)的終止行格式分隔的字段「」位置/ EMP

在/ EMP目錄中有2個EMP文件。

所以當我們運行select * from employee時,它從文件廣告顯示中獲取數據。

當有其他文件也會有不同類型的記錄時,會發生哪些列與僱員表不匹配,所以當我們運行「select * from employee」時它會嘗試加載所有文件?

1.我們可以指定我們要加載的特定文件名嗎? 2.我們是否可以在同一地點創建其他表格?

感謝 PRASHANT

回答

0

將加載EMP目錄中的所有文件,即使它不匹配表。

您的第一個問題。你可以使用Regex serde.if數據匹配regex,然後加載到表格中。 regex for access log in hive serde

https://github.com/apache/hive/blob/trunk/contrib/src/java/org/apache/hadoop/hive/contrib/serde2/RegexSerDe.java

其他選項:我指着一些links.these鏈接有一些方法。

when creating an external table in hive can I point the location to specific files in a direcotry?

https://issues.apache.org/jira/browse/HIVE-951

你的第二個問題:是的,我們還可以創建其他表以相同的位置。

0

以下是您的答案 1.如果文件dosent中的數據與表格格式匹配,配置單元不會引發錯誤。它試圖儘可能最好地讀取數據。如果某些列的數據缺失,則會爲它們設置NULL。

  1. 不,我們不能指定任何表的文件名來讀取數據。 Hive會考慮表目錄下的所有文件。

  2. 是的,我們可以使用相同的位置創建其他表格。