我正在尝试从cassandra表导出和导入数据,以将timestamp列更改为unixepoch列(即,将timestamp键入为bigint)
我尝试使用以下命令将数据导出到csv
COPY raw_data(raw_data_field_id, toUnixTimestamp(dt_timestamp), value) TO 'raw_data_3_feb_19.csv' WITH PAGETIMEOUT=40 AND PAGESIZE=20;
但收到错误消息:Improper COPY command.
如何解决此问题,或者有更好的方法来解决此问题?
来自
raw_data_field_id | dt_timestamp | value
-------------------+---------------------------------+-------
23 | 2018-06-12 07:15:00.656000+0000 | 131.3
到
raw_data_field_id | dt_unix_timestamp_epoch | value
-------------------+---------------------------------+-------
23 | 1528787700656 | 131.3
答案 0 :(得分:1)
COPY
命令不支持添加额外的功能来处理输出。
我会说您有几种解决方案:
echo "select raw_data_field_id, toUnixTimestamp(dt_timestamp), value from raw.raw_data;" | ccm node1 cqlsh > output.csv
导出,更改csv使其具有正确的格式,然后将其导入到新表中(此解决方案来自here)您应该注意COPY FROM
支持的行数少于200万的数据集。