2015-11-03 1 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; 

Первый line позволяет создавать динамические разделы при вставке
В Create SQL создается таблица с полями date,page,id, когда id - это столбец разделов, формат файла parquet и его хранятся в /output.
Вставка SQL, загружает данные из вашей предыдущей таблицы t1 в новую.