Apache spark 创建外部分区表GCP Bucket
我们希望在GCP桶的顶部创建一个外部表,用于存储拼花数据 目前,我们的桶具有这种结构Apache spark 创建外部分区表GCP Bucket,apache-spark,google-cloud-platform,hive,Apache Spark,Google Cloud Platform,Hive,我们希望在GCP桶的顶部创建一个外部表,用于存储拼花数据 目前,我们的桶具有这种结构 BUCKET/MY BUCKET/DATA/2020/07/11/——此位置将有拼花文件 如何创建外部桌面,我们可以根据year/month/date格式对表进行分区。 拼花地板文件包含具有所需值的归档时间 样本值-2020-07-11T15:13:52.032Z 我正在使用此命令: CREATE TABLE if NOT EXISTS TESTING( ( ID VARCHAR, SOURCE
BUCKET/MY BUCKET/DATA/2020/07/11/
——此位置将有拼花文件
如何创建外部桌面,我们可以根据year/month/date
格式对表进行分区。
拼花地板文件包含具有所需值的归档时间
样本值-2020-07-11T15:13:52.032Z
我正在使用此命令:
CREATE TABLE if NOT EXISTS TESTING(
( ID VARCHAR,
SOURCE varchar,
TIME varchar
)
PARTITIONED BY (TIME)
)
WITH (format = 'parquet', external_location = 'My Bucket Location')
您可以使用提供文件完整路径的文件名gs://MY BUCKET/DATA/2020/07/11/filename
你可以这样做
with part as (
select *,
REGEXP_EXTRACT(_FILE_NAME, r"^.*/DATA/([0-9]{4})/.*") as year,
REGEXP_EXTRACT(_FILE_NAME, r"^.*/DATA/[0-9]{4}/([0-9]{1,2})/.*") as month,
REGEXP_EXTRACT(_FILE_NAME, r"^.*/DATA/[0-9]{4}/[0-9]{1,2}/([0-9]{1,2})/.*") as day)
select *
from part
where year="2020" and month="07"
或者创建一个视图,只查询视图而不查询原始外部表