我有一個存盤在磁區目錄中的鑲木地板檔案。磁區格式為
/dates=*/hour=*/something.parquet.
Parquet 檔案的內容如下所示:
{a:1,b:2,c:3}.
這是 json 資料,我想創建外部配置單元表。
我的做法:
CREATE EXTERNAL TABLE test_table (a int, b int, c int) PARTITIONED BY (dates string, hour string) STORED AS PARQUET LOCATION '/user/output/';
之后我運行,MSCK REPAIR TABLE test_table;但我得到以下輸出:
hive> select * from test_table;
OK
NULL NULL NULL 2021-09-27 09
其他三列為空。我想我必須以某種方式定義 JSON 模式,但我不知道如何進一步進行。任何幫助都會很棒。
uj5u.com熱心網友回復:
創建與 parquet 檔案具有相同架構的表:
CREATE EXTERNAL TABLE test_table (value string) PARTITIONED BY (dates string, hour string) STORED AS PARQUET LOCATION '/user/output/';
運行修復表掛載磁區:
MSCK REPAIR TABLE test_table;
決議查詢中的值:
select e.a, e.b, e.c
from test_table t
lateral view json_tuple(t.value, 'a', 'b', 'c') e as a,b,c
如有必要,將值轉換為 int: cast(e.a as int) as a
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/316019.html
標籤:Hadoop 蜂巢 apache-spark-sql 大数据 蜂巢
