Scala 创建具有多个拼花的蜂巢
我有拼花地板文件夹,其名称为“yearquarter”,从(2007年第一季度-2020年第三季度)开始。我正在创建的配置单元表应该只从2014q1到2020q2提取数据。如何实现这一点?您必须更改拼花地板文件夹名称,并为其添加前缀,如Scala 创建具有多个拼花的蜂巢,scala,hive,parquet,Scala,Hive,Parquet,我有拼花地板文件夹,其名称为“yearquarter”,从(2007年第一季度-2020年第三季度)开始。我正在创建的配置单元表应该只从2014q1到2020q2提取数据。如何实现这一点?您必须更改拼花地板文件夹名称,并为其添加前缀,如yearquarter=2001q1(例如),该前缀指示存储这些值的列,因此它位于顶层文件夹下的层次结构中(下面名为table_name) 基于配置单元的解决方案: 然后,您将创建一个位于顶层文件夹中的外部配置单元表。您可以选择external,以便设置位置。表架
yearquarter=2001q1
(例如),该前缀指示存储这些值的列,因此它位于顶层文件夹下的层次结构中(下面名为table_name
)
基于配置单元的解决方案:
然后,您将创建一个位于顶层文件夹中的外部
配置单元表。您可以选择external
,以便设置位置。表架构应与文件中的列标签相对应
CREATE EXTERNAL TABLE TABLE_NAME (
col_name1 HIVE_TYPE,
...,
col_nameN HIVE_TYPE)
PARTITIONED BY (yearquarter STRING)
STORED AS PARQUET
LOCATION '/location/to/your/table_name';
在文件夹层次结构上有一个按文件夹分区的配置单元表后,创建一个配置单元视图,该视图使用WHERE
子句选择一个子集
CREATE VIEW view_name
AS SELECT *
FROM table_name
WHERE yearquarter >= "2014q1" AND yearquarter <= "2020q2";
这是蜂巢问题还是scala火花问题?
CREATE VIEW view_name
AS SELECT *
FROM table_name
WHERE yearquarter >= "2014q1" AND yearquarter <= "2020q2";
// Read parquet hierarchy. The schema (if present) is automatically detected.
val df = spark.read.parquet("/location/to/your/table_name")
// Set filter condition to use.
val filterCondition = col("yearquarter") >= "2014q1" && col("yearquarter") <= "2020q2"
// Filter according to condition.
val filtered = df.filter(filterCondition)