您好我有以下数据源
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 :(得分:0)
使用DataFrames,您的代码应如下所示:
val df = yourData
df.write.partitionBy(['ID']).format("parquet").save(dest, mode="append")
答案 1 :(得分: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;
第一行可以在插入时创建动态分区
当date,page,id
是分区列,文件格式为id
且存储在parquet
时,Create SQL会创建一个包含字段/output
的表。
Insert SQL将前一个表t1
中的数据加载到新表中。