Impala使用现有Kudu表中的分区创建镶木地板表

Mongotop

我正在尝试使用Impala中现有Kudu表中的分区创建镶木地板表,而不必再次指定数据类型的列。

CREATE TABLE IF NOT EXISTS db_name.parquet_table
PARTITIONED BY (`year` SMALLINT, `month` TINYINT, `day` TINYINT)
STORED AS PARQUET 
As SELECT * FROM db_name.kudu_table limit 0

我收到一条错误消息,说

ParseException: Syntax error in line 4:undefined: As SELECT * FROM db_name.parquet_table limit 0 ^ Encountered: AS Expected CAUSED BY: Exception: Syntax error

但是,当我尝试创建不带分区的拼花地板时,它可以使用:

CREATE TABLE IF NOT EXISTS db_name.parquet_table STORED AS PARQUET  
AS SELECT * FROM db_name.kudu_table LIMIT 0 

但是当我尝试使用以下方法添加分区时:

ALTER TABLE db_name.parquet_table ADD PARTITION(`year`=0,`month`=0,`day`=0)

我收到以下错误消息:

AnalysisException: Table is not partitioned: db_name.parquet_table
呼叫

您可以尝试使用加载数据

静态分区

将数据加载到分区表中的一种方法是使用静态分区,您可以在其中手动定义不同的分区。(另一种方法是在加载数据时自动定义分区,这称为动态分区。)

对于静态分区,您可以使用一条ALTER TABLE … ADD PARTITION语句手动创建一个分区,然后将数据加载到该分区中。

以您的示例为例,我会尝试一下。

第一。创建分区表

CREATE TABLE IF NOT EXISTS db_name.parquet_table(field1 [TYPE],...,fieldN [TYPE]) --Fields that not belongs to the partitioned columns
PARTITIONED BY (year SMALLINT, month TINYINT, day TINYINT)
STORED AS PARQUET;

第二。ALTER TABLE语句创建分区。

ALTER TABLE db_name.parquet_table ADD PARTITION(year = 0,month = 0,day = 0);

注意,在ADD PARTITION子句中如何同时指定分区列名称和定义此分区的特定值这将在表目录中创建一个分区目录。

创建分区后,可以使用以下INSERT … SELECT语句将数据添加到分区中

INSERT OVERWRITE TABLE db_name.parquet_table
    PARTITION(year = 0, month = 0, day = 0)
    SELECT field1,..., fieldn --do not include partitioned columns
    FROM db_name.kudu_table 
    WHERE year = 0 AND month = 0 AND day = 0;

对于静态分区,您需要为每个分区重复执行这两个步骤:首先创建分区,然后添加数据。实际上,您可以使用任何方法来加载数据。您无需使用INSERT语句。您可以改用hdfs dfs命令或LOAD DATA INPATH命令。但是无论加载数据如何,都必须小心确保数据存储在正确的分区子目录中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Impala 表与合并的镶木地板文件的性能问题

来自分类Dev

镶木地板支持的Hive表:在Impala中不可查询的数组列

来自分类Dev

在 gcs 上使用镶木地板文件创建新的大查询外部表时。显示错误

来自分类Dev

使用apache箭头在一个R数据框中读取分区的镶木地板目录(所有文件)

来自分类Dev

如何可靠地使用镶木地板文件中的日期时间值来填充(雪花)表

来自分类Dev

在Apache Spark中延迟加载分区镶木地板

来自分类Dev

带有镶木地板数据格式的配置单元表重新排列列

来自分类Dev

是否可以直接从文件加载镶木地板表?

来自分类Dev

如何使用Pyarrow更改镶木地板文件中的列名?

来自分类Dev

镶木地板Pyspark中的UPSERT

来自分类Dev

使用PySpark将数据帧写入镶木地板时如何指定分区号

来自分类Dev

如何更改现有表以在Oracle中创建范围分区

来自分类Dev

Spark不利用镶木地板的HDFS分区

来自分类Dev

在镶木地板中将Snowflake表卸载到s3时保留架构

来自分类Dev

即使存在与之关联的镶木地板文件,Hive 外部表也不显示任何数据

来自分类Dev

使用镶木地板工具打开镶木地板文件时出错

来自分类Dev

Pyspark 新手 - 导入 CSV 并创建带有数组列的镶木地板文件

来自分类Dev

如何将Azure数据集标记为从具有日期分区的镶木地板文件夹中读取的时间序列数据集?

来自分类Dev

为数据框创建函数以创建镶木地板

来自分类Dev

如何为原始区域内的所有表执行 Glue ETL 作业(从原始区域转换为镶木地板到已处理)?

来自分类Dev

无法在 presto db 中查询带有嵌套字段的镶木地板数据

来自分类Dev

如何使用Databricks将.rdata文件转换为Azure数据湖中的镶木地板?

来自分类Dev

使用 Apache Spark 和 Java 在镶木地板文件中增量加载数据

来自分类Dev

PyArrow:使用嵌套类型在镶木地板中存储字典列表

来自分类Dev

在Spark中同时读取几个镶木地板文件

来自分类Dev

我如何阅读 java 中的镶木地板词典

来自分类Dev

使用 fastparquet 在子文件上划分镶木地板文件

来自分类Dev

如何使用 pyarrow 流式处理镶木地板?

来自分类Dev

Pandas:合并具有不同列 dtypes 的镶木地板文件 - 用预定义的架构编写镶木地板?

Related 相关文章

  1. 1

    Impala 表与合并的镶木地板文件的性能问题

  2. 2

    镶木地板支持的Hive表:在Impala中不可查询的数组列

  3. 3

    在 gcs 上使用镶木地板文件创建新的大查询外部表时。显示错误

  4. 4

    使用apache箭头在一个R数据框中读取分区的镶木地板目录(所有文件)

  5. 5

    如何可靠地使用镶木地板文件中的日期时间值来填充(雪花)表

  6. 6

    在Apache Spark中延迟加载分区镶木地板

  7. 7

    带有镶木地板数据格式的配置单元表重新排列列

  8. 8

    是否可以直接从文件加载镶木地板表?

  9. 9

    如何使用Pyarrow更改镶木地板文件中的列名?

  10. 10

    镶木地板Pyspark中的UPSERT

  11. 11

    使用PySpark将数据帧写入镶木地板时如何指定分区号

  12. 12

    如何更改现有表以在Oracle中创建范围分区

  13. 13

    Spark不利用镶木地板的HDFS分区

  14. 14

    在镶木地板中将Snowflake表卸载到s3时保留架构

  15. 15

    即使存在与之关联的镶木地板文件,Hive 外部表也不显示任何数据

  16. 16

    使用镶木地板工具打开镶木地板文件时出错

  17. 17

    Pyspark 新手 - 导入 CSV 并创建带有数组列的镶木地板文件

  18. 18

    如何将Azure数据集标记为从具有日期分区的镶木地板文件夹中读取的时间序列数据集?

  19. 19

    为数据框创建函数以创建镶木地板

  20. 20

    如何为原始区域内的所有表执行 Glue ETL 作业(从原始区域转换为镶木地板到已处理)?

  21. 21

    无法在 presto db 中查询带有嵌套字段的镶木地板数据

  22. 22

    如何使用Databricks将.rdata文件转换为Azure数据湖中的镶木地板?

  23. 23

    使用 Apache Spark 和 Java 在镶木地板文件中增量加载数据

  24. 24

    PyArrow:使用嵌套类型在镶木地板中存储字典列表

  25. 25

    在Spark中同时读取几个镶木地板文件

  26. 26

    我如何阅读 java 中的镶木地板词典

  27. 27

    使用 fastparquet 在子文件上划分镶木地板文件

  28. 28

    如何使用 pyarrow 流式处理镶木地板?

  29. 29

    Pandas:合并具有不同列 dtypes 的镶木地板文件 - 用预定义的架构编写镶木地板?

热门标签

归档