这是我的数据样本
{"userName":"sampleUserName","DateCreated":"1519302159.248"}
这就是我试图创建表格的方式
CREATE TABLE dataSet.myTableName (userName string, DateCreated DATE, email string)
PARTITION BY DateCreated
OPTIONS(
description="a table partitioned by DateCreated"
)
但是当我尝试从newline_delimited_json从命令行加载数据时出现此错误
Invalid schema update. Field DateCreated has changed type from DATE to TIMESTAMP
我认为问题是DateCreated字段是DATE类型,我不知道如何使它成为TIMESTAMP,文档说使用partition_expression,我该怎么做,目的是创建一个分区表date(在我的例子中是DateCreated),例如by year by year。如何改进我的查询以实现这一点,任何建议或指向我的示例或文档都会很棒。
答案 0 :(得分:3)
您可以使用CREATE TABLE
语句来分隔时间戳:
CREATE TABLE dataSet.myTableName
(
userName STRING,
DateCreated TIMESTAMP,
email STRING
)
PARTITION BY DATE(DateCreated)
OPTIONS(
description="a table partitioned by DateCreated"
)
对表格进行分区
PARTITION BY DATE(<timestamp_column>)
- 使用TIMESTAMP
列的日期
如果打算按年划分,您有几个选择:
WHERE _PARTITIONTIME >= '2018-01-01'
或WHERE _PARTITIONTIME >= '2016-01-01' AND _PARTITIONTIME < '2018-01-01'
。