首页 > 解决方案 > COPY INTO:如何添加分区?

问题描述

来自 Databricks的命令COPY INTO提供了对增量表的幂等文件摄取,请参见此处。从文档中,示例命令如下所示:

COPY INTO delta.`target_path`
  FROM (SELECT key, index, textData, 'constant_value' FROM 'source_path')
  FILEFORMAT = CSV
  PATTERN = 'folder1/file_[a-g].csv'
  FORMAT_OPTIONS('header' = 'true')

但是,我希望通过分区摄取我的数据,这可以通过PARTITIONED BY正常摄取中的命令来完成。是否可以执行COPY INTO带有分区的命令?简单地添加分区子句会产生以下错误:

Error in SQL statement: ParseException: 
mismatched input 'PARTITIONED' expecting {<EOF>, ';'}(line 8, pos 0)

标签: sqldatabricksdelta-lake

解决方案


你不能直接从COPY INTO. 您需要使用CREATE TABLE来创建按您需要的任何列分区的表,然后执行COPY INTO创建的表 - 然后它将被正确分区。


推荐阅读