1

我正在尝试创建一个包含两列的表,如下所示:

CREATE TABLE test (col1 INT ,col2 Array<Decimal>) USING column options(BUCKETS '5');

它创建成功,但是当我尝试将数据插入其中时,它不接受任何格式的数组。我尝试了以下查询:

insert into test1 values(1,Array(Decimal("1"), Decimal("2")));

insert into test1 values(1,Array(1,2));

insert into test1 values(1,[1,2,1]);

insert into test1 values(1,"1,2,1");

insert into test1 values(1,<1,2,1>);

etc..

请帮忙!

4

1 回答 1

1

对此有一个公开的票证:https ://jira.snappydata.io/browse/SNAP-1284将在下一个版本中解决 VALUES 字符串(JSON 字符串和 Spark 兼容字符串)的问题。

Spark Catalyst 兼容格式将起作用:

insert into test1 select 1, array(1, 2);

选择数据时,默认情况下以序列化形式提供并显示为二进制。现在您必须使用“complexTypeAsJson”提示显示为 JSON:

select * from test1 --+complexTypeAsJson(true);

默认情况下支持以更简单的字符串格式显示将在下一个版本中添加。

在您的示例中可以注意到的另一件事是存储桶的主要值。这在以前的版本中被记录为首选,但从 1.0 版本开始,建议使用 2 或某个偶数的幂(例如,集群中的核心总数可能是一个不错的选择)——也许一些示例仍在使用较旧的建议。

于 2017-11-01T17:12:16.267 回答