2015-11-03 68 views
1

您好我有數據源如下分區基於列的數據值

ID  Date   Page 

100  27-10-2015  google 
102  27-10-2015  facebook 
102  27-10-2015  instagram 
104  28-10-2015  yahoo 
105  30-10-2015  bing 

我想存儲與所述形式的鑲木格式此數據如下所示

/foldername/columname=value/data.parquet 

對於例如這裏

/output/ID=102/data.parquet 
/output/ID=104/data.parquet 

這裏data.parquet包含實木複合格式的列ID = 102的值。

任何人都可以幫助我如何實現這一目標嗎?

回答

0

使用DataFrames你的代碼應該是這樣的:

val df = yourData 
df.write.partitionBy(['ID']).format("parquet").save(dest, mode="append") 
0

比方說你的數據源表:t1
下面的SQL將創建你的表格你想:

SET hive.exec.dynamic.partition.mode=nonstrict; 

CREATE TABLE T1_PRQT (date string,page string) 
PARTITIONED BY (id int) 
STORED AS parquet 
LOCATION '/output'; 

INSERT OVERWRITE TABLE T1_PRQT PARTITION(id) 
SELECT date,page,id FROM T1; 

第一行可以在插入時創建動態分區
「創建SQL」創建一個表,其中字段date,page,idid是分區列,文件格式爲parquet,其存儲在/output
插入SQL,將您上一個表t1中的數據加載到新的表中。